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?


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


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.

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.


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.


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.


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.


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


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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.