Use una versión diferente de Python con virtualenv

Tengo un sistema Debian que se ejecuta actualmente con python 2.5.4. Tengo virtualenv instalado correctamente, todo funciona bien. ¿Existe la posibilidad de que pueda usar un virtualenv con una versión diferente de Python?

Compilé Python 2.6.2 y me gustaría usarlo con algo de virtualenv. ¿Es suficiente sobrescribir el archivo binario? ¿O tengo que cambiar algo con respecto a las bibliotecas?

preguntado Oct 07 '09, 18:10

Solo menciono que también puedes hacer esto usando virtualenvwrapper. -

Vale la pena señalar que en Python 3, hay un equivalente virtualenv incorporado: venv. -

¿No es posible cambiar la versión de Python en el entorno actual sin crear un nuevo entorno? -

youtube.com/watch?v=N5vscPTWKOk Este video recomendado en la documentación virtualenv repasa todo el paso del proceso. -

30 Respuestas

Solo usa el --python (o corto -p) al crear su instancia virtualenv para especificar el ejecutable de Python que desea usar, por ejemplo:

virtualenv --python=/usr/bin/python2.6 <path/to/new/virtualenv/>

NB para 3.3 Python o más tarde, consulte The Aelfinn's https://www.youtube.com/watch?v=xB-eutXNUMXJtA&feature=youtu.be debajo.

Respondido el 04 de diciembre de 18 a las 19:12

Pensé que mencionaría que esto también funciona para virtualenvwrappers: mkvirtualenv -p python2.6 env - parcialidad

Me falta algo aquí. ¿No requiere esto que 2.6 ya esté instalado en el sistema? Pensé que el punto de virtualenv era que podía tener una versión de python distinta a la principal (en mi caso, 2.4 en CentOS). Estaba asumiendo que podía instalar virtualenv, luego instalar Python 2.6 debajo de él para que los paquetes en el entorno puedan utilizarlo? - John C

@John sí, lo eres. Ese no es el objetivo de virtualenv: el objetivo de eso es crear un entorno de espacio aislado para Python. Primero deberá instalar esa versión; sin embargo, puede instalarla localmente para su usuario. - daniel rosaman

@JohnC Puede usar pythonbrew para instalar pitones alternativos. - fresnos

Si eres un poco vago: virtualenv -p `which python2.6` <path/to/new/virtualenv> - resplandor

Desde Python 3, los documentos de Python sugieren creando el entorno virtual con el siguiente comando:

python3 -m venv <myenvname>

este producto está hecho por encargo con un tiempo de producción de XNUMX a XNUMX semanas venv no permite la creación de entornos virtuales con otras versiones de Python. Para eso, instale y use el virtualenv paquete.


Información obsoleta

Las pyvenv guión se puede utilizar para crear un entorno virtual

pyvenv /path/to/new/virtual/environment

pero ha quedado obsoleto desde Python 3.6.

Respondido el 25 de diciembre de 19 a las 04:12

Me alegro de que lo hayas señalado, necesita más promoción. Un pequeño detalle: ahora abogan por ejecutarlo como python3 -m venv <envname> para evitar la necesidad de scripts de código auxiliar para todo. - Pablo Everitt

De hecho, la pyvenv el guión es en Python 3.6+, aunque el subyacente venv el módulo en sí no lo es. Así que usa python 3 -m venv <myenvname> como dice @PaulEveritt. - RichVel

Ten en cuenta que pyvenv or python3 -m venv ... NO instale el python-config texto. Esto significa que incluso después de activar su entorno Python3, todo el sistema python-config será invocado con consecuencias confusas. Vea este informe de errores de 2011 github.com/pypa/virtualenv/issues/169 y mi pregunta stackoverflow.com/questions/42020937/… - laringe decidua

Confirmando que la observación de @Nick funciona: la forma de crear un venv con una versión específica de Python es usar esa versión al configurarla. Por ejemplo: python3.5 -m venv venv - tanio

Todavía es posible usar una versión de Python diferente con venv. En lugar de proporcionar un argumento, como con virtualenv, solo asegúrese de usar la versión apropiada de Python para ejecutar venv. Ejemplo con py el lanzador de Python: py -3.3 -m venv my_venv creará un entorno virtual usando python 3.3. - colineador

Estos son los pasos que puede seguir cuando se encuentra en un entorno de alojamiento compartido y necesita instalar y compilar Python desde la fuente y luego crear venv de su versión de Python. Para Python 2.7.9. harías algo en este sentido:

mkdir ~/src
wget http://www.python.org/ftp/python/2.7.9/Python-2.7.9.tgz
tar -zxvf Python-2.7.9.tgz
cd Python-2.7.9
mkdir ~/.localpython
./configure --prefix=$HOME/.localpython
make
make install

env virtual

cd ~/src
wget https://pypi.python.org/packages/5c/79/5dae7494b9f5ed061cff9a8ab8d6e1f02db352f3facf907d9eb614fb80e9/virtualenv-15.0.2.tar.gz#md5=0ed59863994daf1292827ffdbba80a63
tar -zxvf virtualenv-15.0.2.tar.gz
cd virtualenv-15.0.2/
~/.localpython/bin/python setup.py install
virtualenv ve -p $HOME/.localpython/bin/python2.7
source ve/bin/activate   

Naturalmente, esto puede aplicarse a cualquier situación en la que desee replicar el entorno exacto en el que trabaja e implementa.

Respondido 26 Feb 20, 13:02

¿Podría explicar por qué hacerlo de esa manera? ¿Por qué instalar Python localmente? Y más importante ¿Por qué instalar virtualenv usando la versión de Python que desea usar con él?? - lajarre

seguro. Si se encuentra en un entorno de alojamiento virtual y el servidor proporciona versiones anteriores de Python con las que no está satisfecho, ese fue mi caso. Además, si desarrolla proyectos en diferentes servidores y desea replicar estos entornos en su máquina local ... Virtualenv crea enlaces duros a las bibliotecas de Python. por lo que es realmente importante con la versión de Python que está utilizando para instalar y crear Virtualenv. - zzart

O si eres como yo y estoy en una máquina bloqueada en el trabajo sin privilegios de sudo. Copias locales de bibliotecas, bases de datos SQL, lenguajes y compiladores en abundancia. ¡Gracias! - zachd1_618

Bajo virtualenv 1.9.1, tuve que usar ~/.localpython/bin/virtualenv en lugar de solo virtualenv para que la configuración se complete sin errores. Además, utilice source ve/bin/activate en lugar de source activate. - Saúl

Otra razón para hacer esto sería probar las versiones beta antes de que se conviertan en principales para asegurarse de que sus proyectos y sus dependencias aún funcionen sin correr el riesgo de romper la administración de su paquete al golpear algo y dejar archivos colgando por todos lados. Me gusta esta respuesta. - RobotHumanos

Hay una manera más fácil,

virtualenv venv --python=python2.7

Gracias a un comentario, esto solo funciona si tiene python2.7 instalado en el nivel del sistema (por ejemplo, /usr/bin/python2.7).

De lo contrario, si está usando homebrew, puede usar la ruta para darle lo que desea.

virtualenv venv --python=/usr/local/bin/python

Puede encontrar la ruta a su instalación de Python con

which python

Esto también funcionará con Python 3.

which python3
>> /usr/local/bin/python3
virtualenv venv --python=/usr/local/bin/python3

Condensando finalmente a:

virtualenv venv -p `which python`
virtualenv venv -p `which python3`

contestado el 24 de mayo de 17 a las 08:05

Para su información, solo funciona si tiene python2.7 instalado en el nivel del sistema (por ejemplo, /usr/bin/python2.7) - kingb12

Pude hacer esto con virtualenv venv --python=python3.6 también - Jordania

De hecho, puede eliminar el número de versión menor. virtualenv env --python=python2 - Anshul

Esa es una solución adecuada, una vez que tenga todas las versiones, está interesado en usar el alias, no la ruta completa. user1767754

En Windows, esto funcionó a las mil maravillas con un pequeño ajuste: virtualenv venv --python=<insert_your_python_version_here> sin que importe <insert_your_python_version_here> fue en mi caso C:\Python\Python368\python.exe - bautista

virtualenv --python=/usr/bin/python2.6 <path/to/myvirtualenv>

Respondido 09 Oct 14, 00:10

Vea mi respuesta a continuación para obtener una solución equivalente utilizando variables de entorno. Ese enfoque significa que no tiene que acordarse de usar -p. - Chris Johnson

¿No hay soluciones que cambien entre las versiones de Python sin necesidad de crear un nuevo entorno virtual? - Charlie Parker

¿Funcionaría esto, si desea instalar una versión de Python que no está instalada en su sistema? Di que quieres probar python3.6 pero no quiero tocar python3.5 instalado en su computadora? - alpha_989

@ alpha_989, ¿encuentras la solución para hacer esto? - Daniil Mashkin

En Windows para mí, esto funciona:

virtualenv --python=c:\Python25\python.exe envname

sin el python.exe tengo WindowsError: [Error 5] Access is denied Tengo Python2.7.1 instalado con virtualenv 1.6.1 y quería python 2.5.2.

Respondido 31 Jul 11, 22:07

Mac OSX 10.6.8 (Leopardo de las Nieves):

1) cuando lo haces pip install virtualenv, el comando pip está asociado con una de sus versiones de Python, y virtualenv se instala en esa versión de python. Tu puedes hacer

 $ which pip   

para ver qué versión de Python es esa. Si ves algo como:

 $ which pip
 /usr/local/bin/pip

entonces hazlo:

$ ls -al /usr/local/bin/pip
lrwxrwxr-x  1 root  admin  65 Apr 10  2015 /usr/local/bin/pip ->
../../../Library/Frameworks/Python.framework/Versions/2.7/bin/pip

Puede ver la versión de Python en la salida.

De forma predeterminada, esa será la versión de Python que se utilizará para cualquier entorno nuevo que cree. Sin embargo, puede especificar cualquier versión de Python instalada en su computadora para usar dentro de un nuevo entorno con el -p flag:

$ virtualenv -p python3.2 my_env  
Running virtualenv with interpreter /usr/local/bin/python3.2  
New python executable in my_env/bin/python  
Installing setuptools, pip...done.  

virtualenv my_env creará una carpeta en el directorio actual que contendrá los archivos ejecutables de Python, y una copia del pip [comando] que puede usar para instalar otros paquetes.

http://docs.python-guide.org/en/latest/dev/virtualenvs/

virtualenv simplemente copia python desde una ubicación en su computadora en el directorio my_env / bin / recién creado.

2) El sistema python está en /usr/bin, mientras que las diversas versiones de Python que instalé se instalaron, de forma predeterminada, en:

 /usr/local/bin

3) Las distintas pitones que instalé tienen nombres como python2.7 or python3.2, y puedo usar esos nombres en lugar de rutas completas.

======== VIRTUALENVWRAPPER =========

1) Tuve algunos problemas para hacer funcionar virtualenvwrapper. Esto es lo que terminé poniendo ~/.bash_profile:

export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/django_projects  #Not very important -- mkproject command uses this
#Added the following based on: 
#http://stackoverflow.com/questions/19665327/virtualenvwrapper-installation-snow-leopard-python
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python2.7 
#source /usr/local/bin/virtualenvwrapper.sh
source /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenvwrapper.sh

2) La -p option funciona de manera diferente con virtualenvwrapper: tengo que especificar la ruta completa al intérprete de Python que se usará en el nuevo entorno (cuando no quiero usar la versión predeterminada de Python):

$ mkvirtualenv -p /usr/local/bin/python3.2 my_env
Running virtualenv with interpreter /usr/local/bin/python3
New python executable in my_env/bin/python
Installing setuptools, pip...done.
Usage: source deactivate

removes the 'bin' directory of the environment activated with 'source
activate' from PATH. 

A diferencia de virtualenv, virtualenvwrapper creará el entorno en la ubicación especificada por la variable de entorno $ WORKON_HOME. Eso mantiene todos sus entornos en un solo lugar.

Respondido 13 Jul 19, 05:07

which pip no me dice la versión de Python. Me da esto /usr/local/bin/pip. - Sankalp

@Sankalp, si haces cd para /usr/local/bin y hacer $ ls -al pip, debería ver algo como: pip -> ../../../Library/Frameworks/Python.framework/Versions/2.7/bin/pip - 7 espárragos

Ya algo notado en respuesta, pero mkproject es el comando que debe usar si desea crear tanto el directorio del proyecto como un entorno virtual de una versión determinada de Python. mkproject -p /usr/bin/python3.6 myNewPython36Project - factor jim

Suponga que actualmente tiene Python 2.7 instalado en su virtualenv. Pero quiero hacer uso de python3.2, Debería actualizar esto con:

$ virtualenv --python=/usr/bin/python3.2 name_of_your_virtualenv

Entonces activa tu virtualenv por:

$ source activate name_of_your_virtualenv

y luego haz: python --version en shell para comprobar si su versión está actualizada.

Respondido el 08 de Septiembre de 18 a las 19:09

Vea mi respuesta a continuación para obtener una solución equivalente utilizando variables de entorno. Ese enfoque significa que no tiene que acordarse de usar -p. - Chris Johnson

Estos dos comandos deberían funcionar bien.

virtualenv -p python2 myenv (Para python2)

virtualenv -p python3 myenv (Para python3)

Respondido el 02 de Septiembre de 19 a las 13:09

La bandera -p python2 funciona de manera equivalente a buscar / usr / bin / python2. Uso: virtualenv -p python2.7 myenv para 2.7, etc. - Yash sharma

[Noviembre de 2019] Necesitaba instalar un entorno Python 3.7 (env) en mi sistema Arch Linux basado en Python 3.8. Python 3.7 ya no estaba en el sistema, por lo que no pude degradar Python para instalar un paquete que necesitaba.

Además, quería usar ese paquete / Python 3.7 dentro de un entorno virtual (venv). Así es como lo hice.


Descargue los archivos fuente de la versión Python:

Descargué los archivos fuente de Python 3.7.4 de

https://www.python.org/downloads/source/

a

/mnt/Vancouver/apps/python_versions/src/Python-3.7.4.tgz

Luego extraje ese archivo (archivos fuente) a

/mnt/Vancouver/apps/python_versions/src/Python-3.7.4/


Instalación:

[Nota: en mi sistema env, no un venv.]

cd /mnt/Vancouver/apps/python_versions/src/Python-3.7.4/
time ./configure                 ## 17 sec
time make                        ## 1 min 51 sec
time sudo make install           ## 18 sec
time make clean                  ## 0.3 sec

Examine las versiones de Python instaladas:

$ which python
/usr/bin/python

$ python --version
Python 3.8.0

$ which python3.7
/usr/local/bin/python3.7

$ python    ## Python 3.8 [system / env]
Python 3.8.0 (default, Oct 23 2019, 18:51:26) 
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

$ python3.7    ## newly-installed Python 3.7 package
Python 3.7.4 (default, Nov 20 2019, 11:36:53) 
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.version)
3.7.4 (default, Nov 20 2019, 11:36:53) 
[GCC 9.2.0]
>>>

$ python3.7 --version                                                                                                 
Python 3.7.4

Cómo crear un venv para una versión específica de Python:

https://docs.python.org/3/tutorial/venv.html

12.2. CREANDO ENTORNOS VIRTUALES

El módulo utilizado para crear y administrar entornos virtuales se llama venv. venv normalmente instalará la versión más reciente de Python que tenga disponible. Si tiene varias versiones de Python en su sistema, puede seleccionar una versión específica de Python ejecutando python3 o la versión que desee.

Para crear un entorno virtual, decida el directorio donde desea colocarlo y ejecute el módulo venv como un script con la ruta del directorio:

python3 -m venv tutorial-env

Esto creará el tutorial-env directorio si no existe, y también crear directorios dentro de él que contengan una copia del intérprete de Python, la biblioteca estándar y varios archivos de soporte. ...


Cree Python 3.7 venv [en un entorno / sistema operativo Python 3.8]:

python3.7 -m venv ~/venv/py3.7      ## create Python 3.7-based venv
source ~/venv/py3.7/bin/activate    ## activate that venv
deactivate                          ## deactivate that venv (when done, there)

Añadido a ~/.bashrc:

alias p37='echo "   [Python 3.7 venv (source ~/venv/py3.7/bin/activate)]" && source ~/venv/py3.7/bin/activate'

Prueba Python 3.7 venv:

$ p37                                                                                                                 
[Python 3.7 venv (source ~/venv/py3.7/bin/activate)]

(py3.7)$ python --version
Python 3.7.4

(py3.7)$ python
Python 3.7.4 (default, Nov 20 2019, 11:36:53) 
[GCC 9.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print(sys.version)
3.7.4 (default, Nov 20 2019, 11:36:53) 
[GCC 9.2.0] 
>>>

Respondido el 06 de enero de 20 a las 21:01

¡Esta es una respuesta extremadamente completa! :) Encuentro este problema cada vez que necesito transferir algo de Arch Linux a cualquier otro sistema (por ejemplo, Debian-ish). - robbie capps

@Victoria Stuart, muchas gracias. Esto es exactamente lo que estaba buscando. - papá diablo

Aquí hay buenas instrucciones paso a paso sobre cómo instalar Python 3.7 desde la fuente en Debian linuxize.com/post/cómo-instalar-python-3-7-on-debian-9. Pero como de costumbre, sugiere sudo make altinstall y recomendaría encarecidamente instalarlo como un usuario normal, por ejemplo, ./configure --prefix=~/my-python-3.7 && make -j8 && make install. Entonces puedes hacer ~/my-python-3.7/bin/python -m venv myvirtualenv - oseikar

Puedes llamar virtualenv con la versión de Python que desee. Por ejemplo:

python3 -m virtualenv venv

O, alternativamente, apunte directamente a su ruta virtualenv. p. ej. para windows:

c:\Python34\Scripts\virtualenv.exe venv

Y corriendo:

venv/bin/python

Python 3.5.1 (v3.5.1:37a07cee5969, Dec  5 2015, 21:12:44) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>

puedes ver la versión de Python instalada en el entorno virtual

Respondido el 19 de Septiembre de 16 a las 14:09

Recibí este error al ejecutar el primer comando / usr / local / bin / python3: ningún módulo llamado virtualenv - Tanvi

@tanvi: Primero debes instalar virtualenv en tu python3. Correr pip3 install virtualenv primero - nima soroush

Las -p El enfoque funciona bien, pero debe recordar usarlo siempre. Si su objetivo es cambiar a una versión más nueva de Python en general, eso es una molestia y también puede llevar a errores.

Su otra opción es establecer una variable de entorno que haga lo mismo que -p. Establezca esto a través de su ~/.bashrc archivo o donde sea que administre variables de entorno para sus sesiones de inicio de sesión:

export VIRTUALENV_PYTHON=/path/to/desired/version

Entonces virtualenv lo usará cada vez que no especifique -p en la línea de comando.

Respondido 05 ago 16, 21:08

Esto funcionó de maravilla. Alguna idea de por qué establecer export VIRTUALENVWRAPPER_PYTHON=/path/to/desired/version por el documentos virtualenvwrapper no funcionó, pero esta solución funcionó? - YPCrumble

Esa env var controla qué Python virtualenvwrapper utiliza cuando se ejecuta, nada que ver con las instalaciones. - Chris Johnson

Esto funcionó para mí. Ya no tengo que usar -p cada vez que creo un nuevo virtualenv. ¡Gracias! - Nedblorf

En Mac, uso pyenv y virtualenvwrapper. Tuve que crear un nuevo virtualenv. Necesitas homebrew que asumiré que has instalado si estás en una Mac, pero solo por diversión:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"


brew install pyenv
pyenv install 2.7.10
pyenv global 2.7.10
export PATH=/Users/{USERNAME}/.pyenv/versions/2.7.10/bin:$PATH
mkvirtualenv -p ~/.pyenv/versions/2.7.10/bin/python  {virtual_env_name}

También congelé mis requisitos primero para poder simplemente reinstalar en el nuevo virtualenv con:

pip install -r requirements.txt

Respondido el 04 de Septiembre de 15 a las 22:09

El comando debe ser mkvirtualenv -p ~/.pyenv/versions/2.7.10/bin/python {virtual_env_name} versiones, no versión. Si TAN permitiera ediciones cortas, lo habría arreglado. - Martín Burch

pyenv incluye soporte virtualenv a través del pyenv-virtualenv plugin, así que encuentro que realmente no necesito virtualenvwrapper. Más detalles en mi respuesta pyenv. - RichVel

Definitivamente estoy de acuerdo con @RichVel, ¡usar el pyenv-virtualenv provisto con pyenv es la experiencia más sencilla que podríamos pedir! (cf realpython.com/intro-to-pyenv/#virtual-environments-and-pyenv ) - Azul

Aún más fácil, usando la sustitución de comandos para encontrar python2 por usted:

virtualenv -p $(which python2) <path/to/new/virtualenv/>

O al usar virtualenvwrapper:

mkvirtualenv -p $(which python2) <env_name>

Respondido el 19 de Septiembre de 16 a las 14:09

Para Mac (High Sierra), instale virtualenv en python3 y cree un virtualenv para python2:

 $ python3 -m pip install virtualenv
 $ python3 -m virtualenv --python=python2 vp27
 $ source vp27/bin/activate
 (vp27)$ python --version
 Python 2.7.14

respondido 06 mar '19, 16:03

Instale virtualenv en python3 si no tiene: python3 -m pip install virtualenv - zihao zhao

En el subsistema de Windows para Linux:

  1. Crea un entorno para python3:

    virtualenv --python=/usr/bin/python3 env
    
  2. Activarlo:

    source env/bin/activate
    

contestado el 26 de mayo de 17 a las 12:05

yo suelo pyenv para administrar mi versión de Python.

pyenv install 3.7.3
pyenv local 3.7.3

Verifique su versión de Python:

$ python --version
Python 3.7.3

Crea el entorno virtual con venv:

python -m venv .

Luego active el Entorno Virtual:

source bin/activate

Verifique su versión de Python:

$ python --version
Python 3.7.3

Es posible que deba eliminar el entorno virtual anterior

rm -rf bin

Respondido 16 ago 19, 17:08

Como se menciona en un comentario a otra respuesta: es aún más fácil usar el pyenv-virtualenv provisto con pyenv (cf realpython.com/intro-to-pyenv/#virtual-environments-and-pyenv ) - Azul

Estos parecen un poco complicados para Windows. Si está en Windows con Python 3.3 o posterior, puede usar el lanzador de Python py para hacer esto mucho más fácilmente. Simplemente instale la versión diferente de Python, luego ejecute:

py -[my version] -m venv env

Esto creará un entorno virtual llamado env en su directorio actual, usando python [my version]. Como ejemplo:

py -3.7 -m venv env
./env/Scripts/activate

Esto crea un entorno virtual llamado env usando python3.7 y lo activa. No se requieren caminos u otras cosas complejas.

Respondido 09 Abr '20, 20:04

No debería ser py -3.7 -m venv env en cambio (el -m Está perdido)? - sinoroc

¡Sí, arreglado en el post !. - cole smith

Como ya se mencionó en múltiples respuestas, usando virtualenv es una solución limpia. Sin embargo, una pequeña trampa que todos deberían tener en cuenta es que si se establece un alias para python en bash_aliases me gusta:

python=python3.6

este alias también se utilizará dentro del entorno virtual. Entonces en este escenario corriendo python -V dentro del entorno virtual siempre saldrá 3.6 independientemente del intérprete que se utilice para crear el entorno:

virtualenv venv --python=pythonX.X

contestado el 13 de mayo de 20 a las 14:05

En ventanas:

py -3.4x32 -m venv venv34

or

py -2.6.2 -m venv venv26

Esto usa el py lanzador que encontrará el ejecutable de Python adecuado para usted (suponiendo que lo tenga instalado).

Respondido 18 Abr '18, 00:04

, las respuestas anteriores son correctas y funcionan bien en sistemas basados ​​en Unix como Linux & MAC OS X.

Traté de crear virtualenv por Python2 & Python3 con los siguientes comandos.

Aquí he usado venv2 & venv3 como sus nombres para Python2 & Python3 respectivamente.

Python2 »

MacBook-Pro-2:~ admin$ virtualenv venv2 --python=`which python2`
Running virtualenv with interpreter /usr/local/bin/python2
New python executable in /Users/admin/venv2/bin/python
Installing setuptools, pip, wheel...done.
MacBook-Pro-2:~ admin$ 
MacBook-Pro-2:~ admin$ ls venv2/bin/
activate        easy_install        pip2.7          python2.7
activate.csh        easy_install-2.7    python          wheel
activate.fish       pip         python-config
activate_this.py    pip2            python2
MacBook-Pro-2:~ admin$ 

Python3 »

MacBook-Pro-2:~ admin$ virtualenv venv3 --python=`which python3`
Running virtualenv with interpreter /usr/local/bin/python3
Using base prefix '/Library/Frameworks/Python.framework/Versions/3.6'
New python executable in /Users/admin/venv3/bin/python3
Also creating executable in /Users/admin/venv3/bin/python
Installing setuptools, pip, wheel...done.
MacBook-Pro-2:~ admin$ 
MacBook-Pro-2:~ admin$ ls venv3/bin/
activate        easy_install        pip3.6          python3.6
activate.csh        easy_install-3.6    python          wheel
activate.fish       pip         python-config
activate_this.py    pip3            python3
MacBook-Pro-2:~ admin$ 

Comprobando las ubicaciones de instalación de Python

MacBook-Pro-2:~ admin$ which python2
/usr/local/bin/python2
MacBook-Pro-2:~ admin$ 
MacBook-Pro-2:~ admin$ which python3
/usr/local/bin/python3
MacBook-Pro-2:~ admin$ 

Respondido el 30 de junio de 18 a las 08:06

Funcionó para mí

sudo apt-get install python3-minimal

virtualenv --no-site-packages --distribute -p /usr/bin/python3 ~/.virtualenvs/py3

Respondido el 03 de junio de 16 a las 07:06

virtualenv -p python3 myenv

Enlace a Creación de virtualenv

Respondido 03 Jul 18, 09:07

Este fue un error con virtualenv. Solo actualizar su pip debería ser la solución.

pip install --upgrade virtualenv

Respondido 04 Abr '19, 10:04

Finales de 2020:

La experiencia más fluida para usar virtualenv (beneficio adicional: con cualquier versión de Python posible) sería usar pyenv y su complemento pyenv-virtualenv (incluido) (cf https://realpython.com/intro-to-pyenv/#virtual-environments-and-pyenv)

Uso: pyenv virtualenv <python_version> <environment_name>

Instalación:

cf https://github.com/pyenv/pyenv-installer

Dicho esto, hoy en día la mejor alternativa posible en lugar de utilizar virtualenv (y pip) sería Poetry (junto con pyenv indicado anteriormente, para manejar diferentes versiones de Python).

Otra opción, porque es compatible directamente con PyPA (la organización detrás de pip y PyPI) y ha reiniciado el lanzamiento desde finales de mayo (no se lanzó desde finales de 2018 antes de eso ...) sería Pipenv

Respondido el 01 de diciembre de 20 a las 11:12

Esto funcionó para mi uso en Windows 10, donde tengo Python 3.7 y quiero degradar un proyecto en Python 3.6.6:

Usé "venv" para crear un nuevo entorno llamado "venv", lo descargué de https://www.python.org/downloads/windows/ ; instalar "Descargar el instalador ejecutable de Windows x86-64-"; luego utilicé la siguiente línea de comando en el directorio donde quiero crear mi entorno

>C:\Users\...\Python\Python36\python.exe -m venv venv

Finalmente, activé el entorno usando la línea de comando:

>venv\Scripts\activate.bat

Y verifique la versión de Python llamando a:

>python --version 3.6.6 Python

Respondido el 21 de diciembre de 20 a las 00:12

Para los sistemas Debian (debian 9) en 2019, descubrí una solución simple que puede resolver el problema desde el entorno virtual.

Supongamos que el entorno virtual se creó a través de:

python3.7 -m venv myenv

pero solo tiene versiones de python2 y python2.7, y necesita las características recientes de python3.7.

Luego, simplemente ejecutando el comando:

(myvenv) $ python3.7 -m venv --upgrade /home/username/path/to/myvenv/

agregará paquetes de python3.7 si ya están disponibles en su sistema.

Respondido 23 Feb 19, 21:02

Sorprendido de que nadie haya mencionado conda hasta aquí. He descubierto que esto es mucho más sencillo que los otros métodos mencionados aquí. Digamos que tengo python 3.9 y python 2.7 y un proyecto en el que estoy trabajando es python 3.5.4, simplemente podría crear el entorno virtual aislado para 3.5.4 con el comando conda sin descargar nada más.

Para ver una lista de las versiones de Python disponibles primero, use el comando

conda search "^python$"

Para crear el entorno virtual para la versión xyz de python, use el comando

conda create -n yourenvname python=x.y.z

Activar venv con

conda activate yourenvname

Desactivar con

conda deactivate

Para eliminar el entorno virtual cuando haya terminado, use el comando

conda remove -n yourenvname --all

respondido 30 nov., 20:15

UBUNTU 19.04 / Python global 3.7.

Esto funcionó para mí, habilitando un entorno Python 3.8 usando el venv recomendado para el desarrollo de Python 3.

Instale el módulo venv 3.8 y 3.8: $ sudo apt install python3.8 python3.8-venv
más cualquier otro módulo que necesite

Cree su entorno virtual usando la versión de Python que desee en ese entorno

$ /usr/bin/python3.8 -m venv python38-env

cambia a tu entorno virtual

$ source python38-env/bin/activate

python -V = python 3.8

Respondido el 10 de diciembre de 20 a las 12:12

Me funcionó en Windows con la instalación de Python 2:

  1. Paso 1: Instale la versión de Python 3.
  2. Paso 2: crea una carpeta env para el entorno virtual.
  3. Paso 3: c: \ Python37 \ python -m venv c: \ path \ to \ env.

Así es como creé el entorno virtual de Python 3 en mi instalación de Python 2 existente.

Respondido el 19 de junio de 19 a las 11:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.