Tạo môi trường ảo Python 3


12

Tôi đã cài đặt python3-virtualenvtrên Lubfox 15.1 bằng gói Ubuntu chính thức apt-get install python3-virtualenv. Các tài liệu chính thức chỉ ra rằng một đơn giản virtualenv .trong thư mục dự án của tôi là đủ để tạo venv. Điều này không làm gì cả, vì which virtualenvkhông làm gì cả. (Không có gì từ which python-virtualenvwhich python3-virtualenvcũng).

Thông tin gói, sau khi được cài đặt, nói rằng nó đã được cài đặt /usr/lib/python3/dist-packages/virtualenv.py, vì vậy tôi gọi nó dưới python3. Nó cho tôi điều này:

$ python3 /usr/lib/python3/dist-packages/virtualenv.py .
Running virtualenv with interpreter /usr/bin/python2
New python executable in ./bin/python2
Also creating executable in ./bin/python
Installing setuptools, pip...done.

Đúng, khi tôi nhìn, mọi thứ trong ./bin là python2. Có phải python3-virtualenv của ubfox là một gói giả cho python2?

Tài liệu python chính thức cho biết sử dụng một gói khác: python3-venv . Điều này dường như hoạt động khi tôi pyvenv ., với công cụ python3 trong ./binthư mục.

Làm cách nào để tạo thành công virtualenv Python 3?

Câu trả lời:


22

venvlà một kịch bản tiện lợi để tạo env ảo, nhưng không thay thế hoàn toàn mọi thứ virtualenvcó thể làm. Sử dụng một trong hai là tốt cho hầu hết các trường hợp mặc dù. virtualenvkhông lỗi thời

python3 -m venvhoạt động sau khi cài đặt python3-venvvì Debian loại bỏ một số tập lệnh khỏi gói Python cơ bản. python3-virtualenvKhông đưa virtualenvkịch bản vào đường dẫn của bạn vì một số lý do, nhưng python-virtualenvcó, và sẽ hoạt động tốt cho cả hai phiên bản.

Không quan trọng phiên bản nào virtualenvđược cài đặt, nó có thể tạo env cho bất kỳ phiên bản đã cài đặt nào bằng cách chuyển qua -p pythonX(trong đó X là phiên bản). venv, đơn giản hơn, sẽ chỉ tạo ra envs của phiên bản mà nó được chạy từ đó và chỉ khả dụng kể từ 3.3.

$ sudo apt-get install python-virtualenv
$ virtualenv -p python3 env
$ source ./env/bin/activate
$ sudo apt-get install python3-venv
$ python3 -m venv env
$ source ./env/bin/activate
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.