virtualenvwrapper dan Python 3

119

Saya menginstal python 3.3.1 di ubuntu lucid dan berhasil membuat virtualenv seperti di bawah ini

virtualenv envpy331 --python=/usr/local/bin/python3.3

ini membuat folder envpy331di direktori rumah saya.

Saya juga memiliki virtualenvwrapperinstalled.But di docs hanya 2.4-2.7versi pythonyang supported..Has ada yang mencoba untuk mengatur python3virtualenv? Jika ya, dapatkah Anda memberi tahu saya caranya?

Damon
sumber
1
Masalahnya adalah bahwa pip masih merupakan pip python2, bukan? Saya pikir yang Anda inginkan adalah virtualenvwrapper untuk digunakan pyvenvalih-alihvirtualenv
erikbwork

Jawaban:

240

Jika Anda sudah menginstal python3 juga virtualenvwrapper, satu-satunya hal yang perlu Anda lakukan untuk menggunakan python3 dengan lingkungan virtual adalah membuat lingkungan menggunakan:

which python3 #Output: /usr/bin/python3
mkvirtualenv --python=/usr/bin/python3 nameOfEnvironment

Atau, (setidaknya di OSX menggunakan minuman):

mkvirtualenv --python=`which python3` nameOfEnvironment

Mulailah menggunakan lingkungan dan Anda akan melihat bahwa segera setelah Anda mengetik python Anda akan mulai menggunakan python3

Jonathan
sumber
12
Tidak cukup berhasil untuk saya di OSX dengan 2.7.8 dan 3.4.1 diinstal berdampingan melalui brew. Memodifikasinya menjadi "mkvirtualenv --python =` which python3` nameOfEnvironment "bekerja dengan sempurna.
Chris Doggett
@ChrisDoggett sama di Ubuntu 14.10.
z0r
4
Di Ubuntu, perintahnya adalah: mkvirtualenv --python = / usr / bin / python3 nama-env-Anda
Vasiliy Toporov
2
Jika Anda menggunakan bash, Anda dapat melakukan substitusi untuk menghemat garis -mkvirtualenv --python=$(which python3) nameOfEnvironment
d4nyll
apa yang benar-benar hebat adalah membuat alias bash berikut alias mkvirtualenv3="mkvirtualenv --python=$(which python3.6)"- lalu mudah membuat virtualenv untuk python 2 atau 3
robertmoggach
52

Anda dapat membuat virtualenvwrapper menggunakan biner Python khusus alih-alih yang menjalankan virtualenvwrapper. Untuk melakukan itu, Anda perlu menggunakan variabel VIRTUALENV_PYTHON yang digunakan oleh virtualenv:

$ export VIRTUALENV_PYTHON=/usr/bin/python3
$ mkvirtualenv -a myproject myenv
Running virtualenv with interpreter /usr/bin/python3
New python executable in myenv/bin/python3
Also creating executable in myenv/bin/python
(myenv)$ python
Python 3.2.3 (default, Oct 19 2012, 19:53:16) 
[GCC 4.7.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Iliyan Bobev
sumber
2
Ini secara efektif sudah ketinggalan zaman. Daripada menyetel variabel lingkungan, Anda harus menggunakan parameter --python yang saat ini disarankan oleh Jonathan.
AlexLordThorsen
6
@Rawrgulmuffins Mengapa? Hal ini mencegah keharusan untuk menentukan versi python untuk setiap env baru.
Joost
@Oost Itu poin yang adil. Saya pribadi merasa itu adalah kerugian, tetapi saya dapat melihat mengapa orang lebih suka itu.
AlexLordThorsen
21

virtualenvwrapper sekarang memungkinkan Anda menentukan python yang dapat dieksekusi tanpa jalur.

Jadi (setidaknya di OSX) mkvirtualenv --python=python3 nameOfEnvironmentsudah cukup.

Peter Yin
sumber
2
Membutuhkan dua tanda hubung. Akan mengedit, tetapi SE membutuhkan 6 karakter dan perubahan hanya membutuhkan satu.
jwogrady
20

Di Ubuntu; menggunakan mkvirtualenv -p python3 env_namebeban virtualenv dengan python3.

Di dalam env, gunakan python --versionuntuk memverifikasi.

akashbw
sumber
1
python --versionuntuk menampilkan versi
Dos
20

Anda dapat menambahkan ini ke .bash_profile Anda atau yang serupa:

alias mkvirtualenv3='mkvirtualenv --python=`which python3`'

Kemudian gunakan mkvirtualenv3sebagai pengganti mkvirtualenvsaat Anda ingin membuat lingkungan python 3.

chorbs
sumber
13

Saya menemukan itu berjalan

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

dan

export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv-3.4

di baris perintah di Ubuntu memaksa mkvirtualenv untuk menggunakan python3 dan virtualenv-3.4. Masih harus dilakukan

mkvirtualenv --python=/usr/bin/python3 nameOfEnvironment

untuk menciptakan lingkungan. Ini mengasumsikan bahwa Anda memiliki python3 di / usr / bin / python3 dan virtualenv-3.4 di /usr/local/bin/virtualenv-3.4.

George yang penasaran
sumber
Cukup gunakan which python2.4atau which python3.5atau which python3.6untuk menemukan direktori untuk--python=DIRECTORY
Santhosh
5

Posting ini tentang pelacak masalah bitbucket dari virtualenvwrapper mungkin menarik. Disebutkan di sana bahwa sebagian besar fungsi virtualenvwrapper bekerja dengan lingkungan virtual venv di Python 3.3.

Ioannis Filippidis
sumber
0

Saya menambahkan export VIRTUALENV_PYTHON=/usr/bin/python3ke saya ~/.bashrcseperti ini:

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENV_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh

lalu lari source .bashrc

dan Anda dapat menentukan versi python untuk setiap env baru mkvirtualenv --python=python2 env_name

Mustapha-Belkacim
sumber