A virtualenv là bản cài đặt Python gọn nhẹ, độc lập. Chúng được thiết kế để được thiết lập với tối thiểu là phiền phức và "chỉ hoạt động" mà không yêu cầu kiến thức chuyên sâu hoặc kiến thức chuyên sâu.
Trong Python 3.3 hoặc mới hơn, bạn có thể tạo một virtualenv như sau:
$ python3 -m venv ENV_DIR
Đối với Windows, bạn nên thay thế python3
với đường dẫn đầy đủ đến python.exe:
>C:\Python34\python.exe -m venv ENV_DIR
(này là một cài đặt Python điển hình, hệ thống của bạn có thể thay đổi.)
Trong các phiên bản cũ hơn của Python, bao gồm Python 2, một trong các lệnh sau sẽ hoạt động trong hầu hết ca ses:
$ virtualenv ENV_DIR
$ venv ENV_DIR
$ pyvenv ENV_DIR
$ pyvenv3 ENV_DIR
ENV_DIR
phải là một thư mục không tồn tại. Thư mục có thể có bất kỳ tên nào, nhưng để giữ cho các hướng dẫn này đơn giản, tôi sẽ giả sử bạn đã tạo virtualenv của mình trong một thư mục có tên là venv
(ví dụ: python3 -m venv ./venv
).
Để làm việc trong virtualenv, bạn kích hoạt nó:
$ . ./venv/bin/activate
(venv)$
Hoặc sử dụng này nếu bạn có một hệ thống các cửa sổ:
$ venv\Scripts\activate
Các (venv)
tại dấu nhắc shell cho phép bạn biết được virtualenv bạn đã kích hoạt, nhưng bạn có thể tắt tính năng này nếu bạn không thích nó. Bạn có thể chạy tất cả các lệnh Python thường lệ, và họ sẽ có địa phương để virtualenv của bạn:
(venv)$ pip install requests numpy
[...]
(venv)$ python
[...]
>>> import requests
>>> import numpy as np
>>>
python
sẽ chạy phiên bản Python rằng bạn đã cài đặt thành virtualenv bạn, do đó (ví dụ), bạn không cần phải gõ python3
để lấy Python 3. Python nó chạy sẽ có quyền truy cập vào tất cả các mô-đun thư viện chuẩn và tất cả các gói bạn đã cài đặt vào virtualenv, nhưng (theo mặc định) không có gói nào được cài đặt trong thư mục site-packages
toàn hệ thống. Quy tắc cuối cùng này rất quan trọng: bằng cách hạn chế virtualenv của bạn chỉ sử dụng các gói được cài đặt cục bộ, bạn có thể đảm bảo rằng bạn kiểm soát chính xác phụ thuộc của dự án của bạn, ngay cả khi một số gói hệ thống mới được cài đặt hoặc cập nhật vào tuần tới .Nếu bạn thích, bạn có thể nhận được một danh sách các gói cài đặt của bạn:
(venv)$ pip freeze
requests==2.13.0
numpy==1.12.0
(venv)$
pip
cũng có thể phân tích định dạng này và cài đặt từ nó, và nó sẽ cài đặt các phiên bản tương tự, ngay cả khi cập nhật đã được phát hành trong thời gian này:
(venv)$ pip freeze >requirements.txt
(some-other-venv)$ pip install -r requirements.txt
[...]
(some-other-venv)$ python
>>> import requests
>>> import numpy as np
>>>
bạn có thể lấy ra khỏi virtualenv bằng cách khử hoạt nó:
(venv)$ deactivate
$ python
[...]
>>> import requests
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named 'requests'
bạn có thể tạo bao nhiêu virtualenvs như bạn muốn, và họ sẽ không int erfere với nhau, cũng không với các gói hệ thống của bạn. Một virtualenv là "chỉ" một thư mục với một loạt các tập tin nhị phân và kịch bản theo nó, vì vậy bạn có thể loại bỏ một virtualenv giống như cách bạn loại bỏ bất kỳ thư mục (rm -r venv
trên Unix). Nếu virtualenv được kích hoạt khi bạn loại bỏ nó, bạn có thể gây nhầm lẫn shell của bạn, vì vậy nó có thể là một ý tưởng tốt để deactivate
đầu tiên trong trường hợp đó.
Đọc bài viết này: http://flask.pocoo.org/docs/0.12/installation/#virtualenv –