Giới thiệu
Lập trình viên thường làm việc với dự án Python cần dùng module/package không thuộc thư viện chuẩn, chỉ cần cho ứng dụng cụ thể đó. Ví dụ: cài Python 3.6 nhưng dự án yêu cầu Python 2.7 cho ứng dụng cụ thể. Không chỉ package mới mà có thể yêu cầu phiên bản cụ thể của package đã cài. Hai yêu cầu mâu thuẫn: cài 2.7 hoặc 3.6 sẽ khiến một ứng dụng không chạy.
Giải pháp: tạo virtual environment (môi trường ảo) cho dự án. Virtualenv là công cụ tạo môi trường Python độc lập. Virtualenv tạo thư mục tự chứa (self-contained) với tất cả executable cần thiết để dùng các package mà dự án Python yêu cầu.
Tại sao cần Virtual Environment?
Mục đích chính: giải quyết vấn đề dependencies (phụ thuộc), versions (phiên bản package) và gián tiếp permissions (quyền).
Yêu cầu cài đặt Virtual Environment
Cần Python cài trên máy (không nhất thiết bản mới) và pip package manager. Nếu dùng Python 3.4+, pip có sẵn (thư viện chuẩn). Nếu thiếu, hãy cài đặt trước.
Tạo Virtual Environments
Mở command prompt (cmd). Đi đến thư mục muốn cài virtual environment.
Nếu không dùng Python 3.x, cài virtualenv bằng pip:
pip install virtualenv
Nếu virtualenv đã cài (dùng Python 3 hoặc đã cài sẵn), chạy lệnh trên sẽ báo:
>pip install virtualenv
Requirement already satisfied: virtualenv in c:\python\python361\lib\site-packages (15.1.0)
Tạo thư mục mới làm việc:
mkdir python-virtual-environments && cd python-virtual-environments
Tạo virtual environment mới trong thư mục:
# Python 2.x
virtualenv myenv
# Python 3.x
python -m venv myenv
Script tạo thư mục myenv với cấu trúc:
├── Include
│ ├── abstract.h
│ ├── accu.h
│ ...
├── Lib
│ ├── __future__.py
│ ├── __pycache__
│ ├── _bootlocale.py
│ ...
├── pip-selfcheck.json
├── Scripts
│ ├── activate
│ ├── activate.bat
│ ├── activate.ps1
│ ├── activate_this.py
│ ├── deactivate.bat
│ ├── easy_install.exe
│ ├── pip.exe
│ ├── python.exe
│ ...
- Include: C headers compile package Python
- Scripts: file tương tác với virtual environment
- Lib: chứa bản sao phiên bản Python và thư mục site-packages nơi cài dependency
Kích hoạt Virtual Environment
File quan trọng là script activate trong thư mục Scripts. Script này dùng Python executable của môi trường và site-package mặc định để thiết lập shell.
Để dùng môi trường ảo "myenv" độc lập, cần activate nó trước. Chạy lệnh activate (xem screenshot).
Khi virtual environment active, có thể cài tất cả package và dependency liên quan dự án cách ly khỏi bên ngoài. Ví dụ dự án data science:
(myenv) C:\Users\rajesh\python-virtual-environments>pip install numpy scipy matplotlib ipython jupyter pandas
Khi xong dự án, thoát virtual environment bằng cách deactivate:
(myenv) C:\Users\rajesh\python-virtual-environments>deactivate
C:\Users\rajesh\python-virtual-environments>
Quay lại Windows command shell.