usr there the such running python3 problem orden mkvirtualenv hooks encontró crear python linux ubuntu amazon-ec2 virtualenvwrapper

python - there - Ningún módulo llamado ''virtualenvwrapper''



virtualenvwrapper python3 (4)

Estoy trabajando para configurar un proyecto Django en Amazon EC2 con una instancia de Ubuntu 14.04 LTS. Quiero escribir mi código usando Python 3. Me han dicho que la mejor manera de hacerlo es usar virtualenvwrapper . He instalado virtualenvwrapper éxito y poner

export WORKON_HOME=$HOME/.virtualenvs export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.4 export PROJECT_HOME=$HOME/Devel source /usr/local/bin/virtualenvwrapper.sh

en mi archivo .bashrc . Ahora veo:

/usr/bin/python3.4: Error while finding spec for ''virtualenvwrapper.hook_loader'' (<class ''ImportErro r''>: No module named ''virtualenvwrapper'') virtualenvwrapper.sh: There was a problem running the initialization hooks. If Python could not import the module virtualenvwrapper.hook_loader, check that virtualenvwrapper has been installed for VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.4 and that PATH is set properly.

¿Cómo puedo arreglar esto?


En lugar de especificar un intérprete de python diferente con el indicador -p , también puede configurar el intérprete deseado como predeterminado.

De acuerdo con la documentation virtualenvwrapper.sh , virtualenvwrapper.sh encuentra los primeros programas de python y virtualenv en $PATH y los recuerda para usarlos más adelante.

Si su virtualenvwrapper no está instalado en el intérprete de python predeterminado de su sistema operativo ( /usr/bin/python ), asegúrese de anular las variables de entorno de la siguiente manera:

  • VIRTUALENVWRAPPER_PYTHON a la ruta completa de su intérprete de python
  • VIRTUALENVWRAPPER_VIRTUALENV a la ruta completa de virtualenv

Por ejemplo, en mi .bash_profile (Mac):

#virtualenvwrapper export WORKON_HOME=$HOME/.virtualenvs export VIRTUALENVWRAPPER_PYTHON=/Library/Frameworks/Python.framework/Versions/3.5/bin/python3 export VIRTUALENVWRAPPER_VIRTUALENV=/Library/Frameworks/Python.framework/Versions/3.5/bin/virtualenv source /Library/Frameworks/Python.framework/Versions/3.5/bin/virtualenvwrapper.sh

Recarga tus nuevas variables ejecutando source ~/.bash_profile


Si usa brew para instalar python, querrá asegurarse de establecer esta variable de entorno:

export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python

en su perfil bash (o cualquier shell que esté usando).


Siguiendo el consejo de Jon, corrí:

ubuntu@ip-172-31-22-65:~$ mkvirtualenv -p /usr/bin/python3.4 env1 Running virtualenv with interpreter /usr/bin/python3.4 Using base prefix ''/usr'' New python executable in env1/bin/python3.4 Also creating executable in env1/bin/python Installing setuptools, pip...done. (env1)ubuntu@ip-172-31-22-65:~$ deactivate ubuntu@ip-172-31-22-65:~$ ls ubuntu@ip-172-31-22-65:~$ ls -a . .. .bash_history .bash_logout .bashrc .cache .pip .profile .ssh .virtualenvs ubuntu@ip-172-31-22-65:~$ workon env1 ubuntu@ip-172-31-22-65:~$ workon env1 (env1)ubuntu@ip-172-31-22-65:~$ which python /home/ubuntu/.virtualenvs/env1/bin/python (env1)ubuntu@ip-172-31-22-65:~$ python -V Python 3.4.0

He dejado el .bashrc como se indica arriba. Como Jon indicó anteriormente, instalar las instalaciones de virtualenvwrapper en el python predeterminado, y usa el python predeterminado en cualquier virtualenv que cree, a menos que se use la marca -p para especificar un intérprete de python diferente.

¡Gracias Jon!


Tuve el mismo problema después de las recientes actualizaciones de Homebrew.

En el pasado, la mayoría de las personas habrían ejecutado pip install virtualenvwrapper en los paquetes del sitio del sistema y habría funcionado.

Homebrew interrumpió este flujo de trabajo por 1) ya no sombreado el sistema python, y 2) ya no está sincronizando pip con pip2/pip3 .

La mayoría de los usuarios se darán cuenta de esto cuando no puedan encontrar pip y luego intentarán usar pip2/pip3 . Sin embargo, utilizar pip2/pip3 creará un problema porque virtualenvwrapper ahora está instalado para python2/python3 , pero no para python . Entonces, cuando virtualenvwrapper ejecuta y llama python, no encontrará los paquetes virtualenvwrapper/virtualenv python en los paquetes del sitio python del sistema.

Establecer explícitamente VIRTUALENVWRAPPER_PYTHON es la solución más limpia, y no un hack. Así es como lo hice en mis dotfiles.

export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3