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.