Buat lingkungan virtual Python 3

13

Saya menginstal python3-virtualenvdi Lubuntu 15.1 menggunakan paket Ubuntu resmi apt-get install python3-virtualenv. The dokumentasi resmi menunjukkan bahwa sederhana virtualenv .dalam direktori proyek saya harus cukup untuk membuat venv tersebut. Ini tidak melakukan apa-apa, karena which virtualenvtidak melakukan apa-apa. (Tidak ada dari which python-virtualenvdan which python3-virtualenvjuga).

Informasi paket, setelah diinstal, mengatakan bahwa itu diinstal /usr/lib/python3/dist-packages/virtualenv.py, jadi saya memohon ini di bawah python3. Ini memberi saya ini:

$ 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.

Yap, ketika saya melihat, semuanya di ./bin adalah python2. Apakah python3-virtualenv ubuntu adalah paket dummy untuk python2?

Dokumentasi python resmi mengatakan menggunakan paket yang berbeda: python3-venv . Ini tampaknya berfungsi ketika saya pyvenv ., dengan hal-hal python3 dalam ./bindirektori.

Bagaimana saya bisa berhasil membuat virtualenv Python 3?

Escher
sumber
Patch yang mengubah perilaku ini di Debian. salsa.debian.org/python-team/modules/python-virtualenv/blob/… Saya berharap saya mengerti proses berpikir yang digunakan ketika tambalan ini ditambahkan.
Winny

Jawaban:

24

venvadalah skrip kenyamanan untuk membuat envs virtual, tetapi tidak sepenuhnya menggantikan semua yang virtualenvdapat dilakukan. Namun, menggunakan salah satu baik-baik saja untuk kebanyakan kasus. virtualenvtidak usang.

python3 -m venvberfungsi setelah menginstal python3-venvkarena Debian menghapus beberapa skrip dari paket Python dasar. python3-virtualenvtidak menempatkan virtualenvskrip pada jalur Anda karena beberapa alasan, tetapi python-virtualenvmelakukannya, dan akan berfungsi dengan baik untuk kedua versi.

Tidak penting virtualenvuntuk menginstal versi mana , itu dapat menghasilkan envs untuk setiap versi yang diinstal dengan melewati -p pythonX(di mana X adalah versi). venv, karena lebih sederhana, hanya akan membuat versi env dari mana ia dijalankan, dan hanya tersedia sejak 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
davidisme
sumber