virtualenvwrapper i Python 3


119

Zainstalowałem Python 3.3.1 na Ubuntu lucid i pomyślnie utworzyłem virtualenv, jak poniżej

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

stworzyło to folder envpy331w moim katalogu domowym.

virtualenvwrapperZainstalowałem również. Ale w dokumentach obsługiwane są tylko 2.4-2.7wersje ... Czy pythonktoś próbował zorganizować python3virtualenv? Jeśli tak, czy możesz mi powiedzieć, jak to zrobić?


1
Problem polega na tym, że pip nadal jest pipem python2, prawda? Myślę, że pyvenvzamiast tego chcesz użyć virtualenvwrappervirtualenv
— erikbwork

Odpowiedzi:



240

Jeśli masz już zainstalowany python3 również virtualenvwrapper, jedyną rzeczą, którą musisz zrobić, aby używać python3 w środowisku wirtualnym, jest utworzenie środowiska za pomocą:

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

Lub (przynajmniej na OSX używającym naparu):

mkvirtualenv --python=`which python3` nameOfEnvironment

Zacznij korzystać ze środowiska, a zobaczysz, że jak tylko wpiszesz python, zaczniesz używać python3


12
Nie całkiem działało dla mnie na OSX z 2.7.8 i 3.4.1 zainstalowanymi obok siebie przez brew. Zmodyfikowanie go na "mkvirtualenv --python =` który python3` nameOfEnvironment "działało idealnie.
— Chris Doggett

@ChrisDoggett to samo na Ubuntu 14.10.
— z0r

4
W systemie Ubuntu polecenie będzie wyglądać następująco: mkvirtualenv --python = / usr / bin / python3 your-env-name
— Vasiliy Toporov

2
Jeśli używasz basha, możesz dokonać zmiany, aby zapisać linię -mkvirtualenv --python=$(which python3) nameOfEnvironment
— d4nyll

naprawdę świetne jest utworzenie następującego aliasu bash alias mkvirtualenv3="mkvirtualenv --python=$(which python3.6)"- wtedy łatwo jest tworzyć virtualenvy dla Pythona 2 lub 3
— robertmoggach

52

Możesz sprawić, by virtualenvwrapper używał niestandardowego pliku binarnego Pythona zamiast tego, z którym jest uruchamiany virtualenvwrapper. Aby to zrobić, musisz użyć zmiennej VIRTUALENV_PYTHON, z której korzysta 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.

2
To jest faktycznie nieaktualne. Zamiast ustawiać zmienną środowiskową, powinieneś użyć parametru --python, który jest obecnie sugerowany przez Jonathana.
— AlexLordThorsen

6
@Rawrgulmuffins Dlaczego? Zapobiega to konieczności określania wersji Pythona dla każdego nowego środowiska.
— Joost

@Joost To słuszna uwaga. Osobiście uważam, że to wada, ale rozumiem, dlaczego ludzie woleliby to.
— AlexLordThorsen

21

virtualenvwrapper pozwala teraz określić plik wykonywalny Pythona bez ścieżki.

Więc (przynajmniej na OSX) mkvirtualenv --python=python3 nameOfEnvironmentwystarczy.


2
Potrzebuje dwóch myślników. Edytuje, ale SE wymaga 6 znaków, a zmiana wymaga tylko jednego.
— jwogrady

20

Na Ubuntu; za pomocąmkvirtualenv -p python3 env_name ładuje virtualenv za pomocą python3.

Wewnątrz env użyj python --versiondo weryfikacji.


1
python --versionaby wyświetlić wersję
— Dos

20

Możesz dodać to do swojego .bash_profile lub podobnego:

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

Następnie użyj mkvirtualenv3zamiast, mkvirtualenvgdy chcesz utworzyć środowisko Python 3.


13

Uważam, że działa

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

i

export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv-3.4

w wierszu poleceń w systemie Ubuntu zmusza mkvirtualenv do używania python3 i virtualenv-3.4. Nadal trzeba zrobić

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

stworzyć środowisko. Zakłada się, że masz python3 w / usr / bin / python3 i virtualenv-3.4 w /usr/local/bin/virtualenv-3.4.


Po prostu użyj which python2.4lub which python3.5lub, which python3.6aby znaleźć katalog--python=DIRECTORY
— Santhosh


0

Dodałem export VIRTUALENV_PYTHON=/usr/bin/python3do mojego ~/.bashrc:

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

następnie uruchomić source .bashrc

i możesz określić wersję Pythona dla każdego nowego pliku env mkvirtualenv --python=python2 env_name

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.