virtualenvwrapper und Python 3

119

Ich habe Python 3.3.1 auf Ubuntu Lucid installiert und erfolgreich eine virtuelle Umgebung wie unten erstellt

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

Dadurch wurde ein Ordner envpy331in meinem Home-Verzeichnis erstellt.

Ich habe auch virtualenvwrapperinstalliert. Aber in den Dokumenten werden nur 2.4-2.7Versionen von pythonunterstützt. python3Hat jemand versucht, die virtuelle Umgebung zu organisieren ? Wenn ja, können Sie mir sagen, wie?

Damon
quelle
1
Das Problem dabei ist, dass pip immer noch python2 pip ist, nicht wahr? Ich denke, was Sie wollen, ist virtualenvwrapper pyvenvanstelle vonvirtualenv
erikbwork

Antworten:

240

Wenn Sie Python3 bereits installiert haben, müssen Sie für die Verwendung von Python3 in der virtuellen Umgebung lediglich eine Umgebung erstellen, in der Sie Folgendes verwenden: virtualenvwrapper:

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

Oder (zumindest unter OSX mit Brew):

mkvirtualenv --python=`which python3` nameOfEnvironment

Wenn Sie die Umgebung verwenden, werden Sie feststellen, dass Sie Python3 verwenden, sobald Sie Python eingeben

Jonathan
quelle
12
Hat unter OSX mit 2.7.8 und 3.4.1, die nebeneinander über Brew installiert wurden, nicht ganz funktioniert. Das Ändern in "mkvirtualenv --python =` which python3` nameOfEnvironment "funktionierte jedoch perfekt.
Chris Doggett
@ ChrisDoggett gleich unter Ubuntu 14.10.
z0r
4
Unter Ubuntu lautet der Befehl: mkvirtualenv --python = / usr / bin / python3 your-env-name
Vasiliy Toporov
2
Wenn Sie Bash verwenden, können Sie eine Zeile mkvirtualenv --python=$(which python3) nameOfEnvironment
ersetzen
Was wirklich großartig ist, ist das Erstellen des folgenden Bash-Alias alias mkvirtualenv3="mkvirtualenv --python=$(which python3.6)"- dann ist es einfach, virtuelle Envs für Python 2 oder 3 zu erstellen
Robertmoggach
52

Sie können virtualenvwrapper dazu bringen, eine benutzerdefinierte Python-Binärdatei anstelle der zu verwenden, mit der virtualenvwrapper ausgeführt wird. Dazu müssen Sie die Variable VIRTUALENV_PYTHON verwenden, die von virtualenv verwendet wird:

$ 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
quelle
2
Dies ist praktisch veraltet. Anstatt eine Umgebungsvariable festzulegen, sollten Sie den Parameter --python verwenden, der derzeit von Jonathan vorgeschlagen wird.
AlexLordThorsen
6
@Rawrgulmuffins Warum? Dadurch wird verhindert, dass die Python-Version für jede neue Umgebung angegeben werden muss.
Joost
@ Joost Das ist ein fairer Punkt. Ich persönlich habe das Gefühl, dass dies ein Nachteil ist, aber ich kann sehen, warum die Leute das vorziehen würden.
AlexLordThorsen
21

Mit virtualenvwrapper können Sie jetzt die ausführbare Python-Datei ohne Pfad angeben.

Also (zumindest unter OSX) mkvirtualenv --python=python3 nameOfEnvironmentwird ausreichen.

Peter Yin
quelle
2
Benötigt zwei Striche. Würde bearbeiten, aber SE benötigt 6 Zeichen und die Änderung benötigt nur eines.
Jwogrady
20

Auf Ubuntu; using mkvirtualenv -p python3 env_namelädt die virtualenv mit python3.

Verwenden Sie python --versionin der Umgebung zur Überprüfung.

akashbw
quelle
1
python --versionum die Version anzuzeigen
Dos
20

Sie können dies zu Ihrem .bash_profile oder ähnlichem hinzufügen:

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

Verwenden Sie dann mkvirtualenv3anstelle von, mkvirtualenvwenn Sie eine Python 3-Umgebung erstellen möchten.

chorbs
quelle
13

Ich finde das läuft

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

und

export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv-3.4

In der Befehlszeile unter Ubuntu wird mkvirtualenv gezwungen, python3 und virtualenv-3.4 zu verwenden. Man muss noch tun

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

die Umgebung zu schaffen. Dies setzt voraus, dass Sie Python3 in / usr / bin / python3 und virtualenv-3.4 in /usr/local/bin/virtualenv-3.4 haben.

Neugieriger George
quelle
Verwenden Sie einfach which python2.4oder which python3.5oder which python3.6, um das Verzeichnis für--python=DIRECTORY
Santhosh
5

Dieser Beitrag zum Bitbucket Issue Tracker von virtualenvwrapper könnte von Interesse sein. Es wird erwähnt , dass die meisten Funktionen von virtualenvwrapper des mit der Arbeit Venv virtuellen Umgebungen in Python 3.3.

Ioannis Filippidis
quelle
0

Ich fügte export VIRTUALENV_PYTHON=/usr/bin/python3meinem ~/.bashrcso hinzu :

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

dann renne source .bashrc

und Sie können die Python-Version für jede neue Umgebung angeben mkvirtualenv --python=python2 env_name

Mustapha-Belkacim
quelle