virtualenvwrapper y Python 3

119

Instalé python 3.3.1 en ubuntu lucid y creé con éxito un virtualenv como se muestra a continuación

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

esto creó una carpeta envpy331en mi directorio de inicio.

También lo he virtualenvwrapperinstalado. Pero en los documentos solo se admiten 2.4-2.7versiones de .. ¿ pythonAlguien ha intentado organizar el python3virtualenv? Si es así, ¿puede decirme cómo?

demonio
fuente
1
El problema con eso es que pip sigue siendo el pip de python2, ¿no es así? Creo que lo que quieres es usar virtualenvwrapper en pyvenvlugar devirtualenv
erikbwork

Respuestas:

240

Si ya tiene instalado python3 también virtualenvwrapper, lo único que debe hacer para usar python3 con el entorno virtual es crear un entorno usando:

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

O, (al menos en OSX usando brew):

mkvirtualenv --python=`which python3` nameOfEnvironment

Comience a usar el entorno y verá que tan pronto como escriba python, comenzará a usar python3

Jonathan
fuente
12
No funcionó para mí en OSX con 2.7.8 y 3.4.1 instalados uno al lado del otro a través de brew. Sin embargo, modificarlo a "mkvirtualenv --python =` which python3` nameOfEnvironment "funcionó perfectamente.
Chris Doggett
@ChrisDoggett lo mismo en Ubuntu 14.10.
z0r
4
En Ubuntu, el comando será: mkvirtualenv --python = / usr / bin / python3 your-env-name
Vasiliy Toporov
2
Si usa bash, puede hacer una sustitución para guardar una línea -mkvirtualenv --python=$(which python3) nameOfEnvironment
d4nyll
lo que es realmente genial es crear el siguiente alias de bash alias mkvirtualenv3="mkvirtualenv --python=$(which python3.6)"; entonces es fácil crear virtualenvs para python 2 o 3
robertmoggach
52

Puede hacer que virtualenvwrapper use un binario Python personalizado en lugar del que se ejecuta virtualenvwrapper. Para hacer eso, debe usar la variable VIRTUALENV_PYTHON que utiliza 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
fuente
2
Esto está efectivamente desactualizado. En lugar de establecer una variable de entorno, debe usar el parámetro --python que actualmente sugiere Jonathan.
AlexLordThorsen
6
@Rawrgulmuffins ¿Por qué? Esto evita tener que especificar la versión de Python para cada nuevo env.
Joost
@Joost Ese es un buen punto. Personalmente, siento que eso es un inconveniente, pero puedo ver por qué la gente prefiere eso.
AlexLordThorsen
21

virtualenvwrapper ahora le permite especificar el ejecutable de Python sin la ruta.

Entonces (en OSX al menos) mkvirtualenv --python=python3 nameOfEnvironmentserá suficiente.

Peter Yin
fuente
2
Necesita dos guiones. Lo editaría, pero SE requiere 6 caracteres y el cambio solo necesita uno.
jwogrady
20

En Ubuntu; usando mkvirtualenv -p python3 env_namecarga el virtualenv con python3.

Dentro del env, use python --versionpara verificar.

Akashbw
fuente
1
python --versionpara mostrar la versión
Dos
20

Puede agregar esto a su .bash_profile o similar:

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

Luego, utilice en mkvirtualenv3lugar de mkvirtualenvcuando desee crear un entorno de Python 3.

chorbs
fuente
13

Lo encuentro corriendo

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

y

export VIRTUALENVWRAPPER_VIRTUALENV=/usr/bin/virtualenv-3.4

en la línea de comando en Ubuntu obliga a mkvirtualenv a usar python3 y virtualenv-3.4. Todavía hay que hacer

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

para crear el medio ambiente. Esto es asumiendo que tiene python3 en / usr / bin / python3 y virtualenv-3.4 en /usr/local/bin/virtualenv-3.4.

Jorge el curioso
fuente
Simplemente use which python2.4o which python3.5o which python3.6para encontrar el directorio de--python=DIRECTORY
Santhosh
5

Esta publicación sobre el rastreador de problemas de bitbucket de virtualenvwrapper puede ser de interés. Allí se menciona que la mayoría de las funciones de virtualenvwrapper funcionan con los entornos virtuales venv en Python 3.3.

Ioannis Filippidis
fuente
0

Agregué export VIRTUALENV_PYTHON=/usr/bin/python3a mi ~/.bashrcasí:

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

entonces corre source .bashrc

y puede especificar la versión de Python para cada nuevo env mkvirtualenv --python=python2 env_name

Mustapha-Belkacim
fuente