Usando Python 3 en virtualenv
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
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
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