Usando Python 3 en virtualenv

Resuelto Prometheus asked hace 10 años • 23 respuestas

Usando virtualenv , ejecuto mis proyectos con la versión predeterminada de Python (2.7). En un proyecto, necesito usar Python 3.4.

Solía brew install python3​​instalarlo en mi Mac. Ahora, ¿cómo creo un entorno virtual que use la nueva versión?

por ejemplo, sudo virtualenv envPython3

Si lo intento:

virtualenv -p python3 test

Yo obtengo:

Running virtualenv with interpreter /usr/local/bin/python3
Using base prefix '/usr/local/Cellar/python3/3.4.0_1/Frameworks/Python.framework/Versions/3.4'
New python executable in test/bin/python3.4
Also creating executable in test/bin/python
Failed to import the site module
Traceback (most recent call last):
  File "/Users/user/Documents/workspace/test/test/bin/../lib/python3.4/site.py", line 67, in <module>
    import os
  File "/Users/user/Documents/workspace/test/test/bin/../lib/python3.4/os.py", line 634, in <module>
    from _collections_abc import MutableMapping
ImportError: No module named '_collections_abc'
ERROR: The executable test/bin/python3.4 is not functioning
ERROR: It thinks sys.prefix is '/Users/user/Documents/workspace/test' (should be '/Users/user/Documents/workspace/test/test')
ERROR: virtualenv is not compatible with this system or executable
Prometheus avatar May 24 '14 15:05 Prometheus
Aceptado

simplemente corre

virtualenv -p python3 envname

Actualización después de la edición de OP:

Hubo un error en la versión de virtualenv del OP, como se describe aquí . El problema se solucionó ejecutando:

pip install --upgrade virtualenv
tbrisker avatar May 24 '2014 08:05 tbrisker

Python 3 tiene soporte integrado para entornos virtuales: venv . Quizás sería mejor usar eso en su lugar. Refiriéndose a los documentos:

La creación de entornos virtuales se realiza ejecutando el script pyvenv:

pyvenv /path/to/new/virtual/environment

Actualización para Python 3.6 y posteriores:

Como comenta correctamente Pawciobiel , está obsoleto a partir de Python 3.6 y la nueva forma es:pyvenv

python3 -m venv /path/to/new/virtual/environment
geckon avatar May 14 '2015 09:05 geckon