virtualenvwrapper e Python 3


119

Ho installato python 3.3.1 su ubuntu lucid e ho creato con successo un virtualenv come di seguito

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

questo ha creato una cartella envpy331sulla mia casa dir.

Ho anche virtualenvwrapperinstallato. Ma nella documentazione sono supportate solo le 2.4-2.7versioni di python.. Qualcuno ha provato a organizzare il python3virtualenv? Se è così, puoi dirmi come?


1
Il problema è che pip è ancora il pip python2, non è vero? Penso che quello che vuoi è virtualenvwrapper da usare al pyvenvposto divirtualenv
erikbwork

Risposte:



240

Se hai già installato anche python3 virtualenvwrapper, l'unica cosa che dovresti fare per usare python3 con l'ambiente virtuale è creare un ambiente usando:

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

Oppure (almeno su OSX utilizzando brew):

mkvirtualenv --python=`which python3` nameOfEnvironment

Inizia a utilizzare l'ambiente e vedrai che non appena digiti python inizierai a utilizzare python3


12
Non ha funzionato per me su OSX con 2.7.8 e 3.4.1 installati fianco a fianco tramite brew. Modificandolo in "mkvirtualenv --python =` which python3` nameOfEnvironment "ha funzionato perfettamente, però.
Chris Doggett

@ChrisDoggett stesso su Ubuntu 14.10.
z0r

4
Su Ubuntu il comando sarà: mkvirtualenv --python = / usr / bin / python3 your-env-name
Vasiliy Toporov

2
Se usi bash, puoi fare la sostituzione per salvare una riga -mkvirtualenv --python=$(which python3) nameOfEnvironment
d4nyll

la cosa veramente fantastica è creare il seguente alias bash alias mkvirtualenv3="mkvirtualenv --python=$(which python3.6)"- quindi è facile creare virtualenvs per python 2 o 3
robertmoggach

52

Puoi fare in modo che virtualenvwrapper utilizzi un binario Python personalizzato invece di quello con cui viene eseguito virtualenvwrapper. Per fare ciò è necessario utilizzare la variabile VIRTUALENV_PYTHON utilizzata da 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
Questo è effettivamente obsoleto. Piuttosto che impostare una variabile d'ambiente dovresti usare il parametro --python che è attualmente suggerito da Jonathan.
AlexLordThorsen

6
@Rawrgulmuffins Why? Questo impedisce di dover specificare la versione di python per ogni nuovo env.
Joost

@ Joost Questo è un punto giusto. Personalmente penso che sia uno svantaggio, ma posso capire perché le persone lo preferirebbero.
AlexLordThorsen

21

virtualenvwrapper ora ti consente di specificare l'eseguibile python senza il percorso.

Quindi (almeno su OSX) mkvirtualenv --python=python3 nameOfEnvironmentsarà sufficiente.


2
Ha bisogno di due trattini. Modificherei, ma SE richiede 6 caratteri e la modifica ne richiede solo uno.
jwogrady

20

Su Ubuntu; using mkvirtualenv -p python3 env_namecarica il virtualenv con python3.

All'interno dell'env, utilizzare python --versionper verificare.


1
python --versionper visualizzare la versione
Dos

20

Puoi aggiungerlo al tuo .bash_profile o simile:

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

Quindi usa mkvirtualenv3invece di mkvirtualenvquando vuoi creare un ambiente Python 3.


13

Lo trovo in esecuzione

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

e

export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv-3.4

nella riga di comando su Ubuntu forza mkvirtualenv a utilizzare python3 e virtualenv-3.4. Uno deve ancora fare

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

per creare l'ambiente. Questo presuppone che tu abbia python3 in / usr / bin / python3 e virtualenv-3.4 in /usr/local/bin/virtualenv-3.4.


Usa which python2.4o which python3.5o which python3.6per trovare la directory--python=DIRECTORY
Santhosh


0

Ho aggiunto export VIRTUALENV_PYTHON=/usr/bin/python3al mio in ~/.bashrcquesto modo:

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

quindi corri source .bashrc

e puoi specificare la versione di python per ogni nuovo env mkvirtualenv --python=python2 env_name

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.