Python Virtualenv – No hay un módulo llamado virtualenvwrapper.hook_loader

Estoy ejecutando Mac OS 10.6.8. y quería instalar además de python 2.6, también python 2.7 y usar python 2.7 en un nuevo virtualenv. Ejecuté los siguientes pasos:

Descargué Python 2.7 y lo instalé:

http://www.python.org/ftp/python/2.7.3/python-2.7.3-macosx10.6.dmg 

Luego ejecuto el comando para configurar un nuevo virtualenv usando python2.7:

 mkvirtualenv --python=python2.7 mynewenv 

Mi .bash_profile se parece a lo siguiente:

 # needed for virtualenvwrapper export WORKON_HOME=$HOME/.virtualenvs export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv source /usr/local/bin/virtualenvwrapper.sh # Setting PATH for Python 2.7 # The orginal version is saved in .bash_profile.pysave PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin:${PATH}" export PATH 

Ahora cuando abro la consola me aparece el siguiente mensaje de error.

 ImportError: No module named virtualenvwrapper.hook_loader virtualenvwrapper.sh: There was a problem running the initialization hooks. If Python could not import the module virtualenvwrapper.hook_loader, check that virtualenv has been installed for VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python and that PATH is set properly. 

También encontré en una publicación diferente que debería actualizar virtualenvwrapper. Eso no ayudó.

 sudo pip install virtualenvwrapper --upgrade 

Cualquier ayuda sería apreciada.

El problema se resolvió siguiendo los pasos a continuación:

 #switch the /usr/bin/python link to point to current python link cd /usr/bin sudo mv python python.bak sudo ln -s /Library/Frameworks/Python.framework/Versions/Current/bin/python python 

Reorganice el comando de exportación para que se coloque antes que los comandos de virtualenv en mi archivo .bash_profile:

 PATH=/Library/Frameworks/Python.framework/Versions/2.7/bin:$PATH export PATH # needed for virtualenvwrapper export WORKON_HOME=$HOME/.virtualenvs source /usr/local/bin/virtualenvwrapper.sh 

Vuelva a instalar setuptools, fácil instalación y PIP. Obviamente, esto es necesario para que funcionen correctamente con la nueva versión de python:

 sudo sh setuptools-0.6c11-py2.7.egg sudo easy_install-2.7 pip pip install virtualenv 

Además, si tiene macports, asegúrese de que /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin antes de /Library/Frameworks/Python.framework/Versions/2.7/bin y /usr/local/bin en PATH. A continuación, establezca lo siguiente en usted. .profile :

 export VIRTUALENVWRAPPER_PYTHON=`which python` export VIRTUALENVWRAPPER_VIRTUALENV=`which virtualenv` source `which virtualenvwrapper.sh` 

En mi caso, agregar esta línea en mi archivo .zshrc hizo el truco,

 export VIRTUALENVWRAPPER_PYTHON=/usr/local/Cellar/python/2.7.13/bin/python2.7 

Esto me sucedió y lo resolví reinstalando pip . Lo que sucedió fue lo que which pip dio como resultado /usr/bin/pip , mientras which python dio /usr/local/bin/python . La ruta para pip debe ser /usr/local/bin/pip . Esto probablemente se rompió cuando actualicé mi instalación de Python.

Si sigue la documentación de pip , puede pip instalar pip fácilmente para su configuración actual de Python. Necesitas:

  1. Descargue el script get-pip.py (directamente vinculado desde la documentación de pip ).
  2. Ejecutar python get-pip.py .

Esto resolvió mi problema.

Hay una serie de cosas que pueden causar este error. Si tu entorno es

  • CentOS 7, con python3 instalado desde epel-release
  • pip3 instalado con python3.4 get-pip.py
  • virtualenvwrapper instalado con pip3
  • Un entorno virtual de Python hecho con mkvirtualenv -p /usr/bin/python3.4

Entonces, por cualquier razón, el entorno virtual se crea sin la biblioteca virtualenvwrapper. Puede resolverlo simplemente instalando de nuevo, pero esta vez desde dentro de virtlualenv

 [user@localhost ~] $ mkvirtualenv -p /usr/bin/python3.4 venv Using base prefix '/usr' New python executable in /home/user/.virtualenvs/venv/bin/python3.4 Also creating executable in /home/user/.virtualenvs/venv/bin/python Installing setuptools, pip, wheel...done. virtualenvwrapper.user_scripts creating /home/user/.virtualenvs/venv/bin/predeactivate virtualenvwrapper.user_scripts creating /home/user/.virtualenvs/venv/bin/postdeactivate virtualenvwrapper.user_scripts creating /home/user/.virtualenvs/venv/bin/preactivate virtualenvwrapper.user_scripts creating /home/user/.virtualenvs/venv/bin/postactivate virtualenvwrapper.user_scripts creating /home/user/.virtualenvs/venv/bin/get_env_details /home/user/.virtualenvs/venv/bin/python3.4: Error while finding spec for 'virtualenvwrapper.hook_loader' (: No module named 'virtualenvwrapper') /home/user/.virtualenvs/venv/bin/python3.4: Error while finding spec for 'virtualenvwrapper.hook_loader' (: No module named 'virtualenvwrapper') # the virtualenv should now activated (venv)[user@localhost ~] $ pip install virtualenvwrapper 

Solo tenía que asegurarme de que existiera / usr / local / bin / python.

Para mi fue un simple:

 ln -s /usr/local/bin/python2.7 /usr/local/bin/python 

Para cualquier persona que use Ubuntu 18.04 y Python 3+ , esto hizo el truco para mí:

 which python3 # outputs /usr/bin/python3 export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 source `which virtualenvwrapper.sh` 

Me sale el mismo error . Descubrí que tenía una versión antigua de pip. Solucioné el error simplemente actualizando el pip.

Acabo de instalar Python 3.5, probé el virtualenvwrapper y luego tuve este problema. Me di cuenta de que python3.5 se instaló en /usr/local/bin/python3.5 y NO en /usr/bin/python3.5 . Entonces, revisé mi script .bash_profile para que se pareciera a lo siguiente y todo parece funcionar ahora

 # Setting PATH for Python 3.5 # The orginal version is saved in .bash_profile.pysave PATH="/Library/Frameworks/Python.framework/Versions/3.5/bin:${PATH}" export PATH export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3.5 export WORKON_HOME=$HOME/.virtualenvs source /Users/bentaub/.virtualenvs/djangodev/bin/virtualenvwrapper.sh 

Soy lo suficientemente novato para no estar seguro de cómo ese ‘local’ en el camino a python3.5 me va a afectar a largo plazo pero, por ahora, funciona.

Tuve este problema después de desinstalar el paquete virtualenvwrapper . Cuando inicié sesión en cualquier usuario (o su a otro), obtendría:

 Traceback (most recent call last): File "", line 1, in  ImportError: No module named virtualenvwrapper.hook_loader virtualenvwrapper.sh: There was a problem running the initialization hooks. If Python could not import the module virtualenvwrapper.hook_loader, check that virtualenv has been installed for VIRTUALENVWRAPPER_PYTHON=/usr/bin/python and that PATH is set properly. 

La solución fue eliminar el archivo /etc/bash_completion.d/virtualenvwrapper .

Editar:

No elimine el archivo anterior o no se volverá a crear si reinstala virtualenvwrapper . En su lugar, lo que debe hacer es purge el paquete virtualenvwrapper cuando lo desinstale. Así en Debian:

 apt-get remove --purge virtualenvwrapper 

Intente desinstalar su virtualenv y virtualenvwrapper e instálelo nuevamente usando pip en la versión 2.7 (creo).

Encontré el mismo error y acabo de hacer esto y resolví mi problema.

Yo uso u

A pesar de que hay una respuesta aceptada, pensé que pondría lo que me lo arregló.

Primero instalé Python y acabo de actualizarlo a través de Homebrew . También estoy usando ZSH, así que si algunos bits no coinciden con su salida, entonces ese podría ser el motivo.

Al ejecutar brew info python y mirar a través de la salida, encontré la siguiente información:

 If you wish to have this formula's python executable in your PATH then add the following to ~/.zshrc: export PATH="/usr/local/opt/python/libexec/bin:$PATH" 

Así que agregué esto a mi script de inicio de terminal como se muestra y aparece el error n más.

Nota: inserté esto en otra parte de mi RUTA y el error persistió en el inicio.

Se encontró con un problema similar después de instalar el proyecto Conda / Anaconda. Esta pregunta fue muy útil para resolver mi problema en MAC. La resolución del problema tenía mi porción relevante de .zshrc aspecto:

 export VIRTUALENVWRAPPER_PYTHON=$HOME/Applications/conda/bin/python source $HOME/Applications/conda/bin/virtualenvwrapper.sh 

Depende de dónde tenga instalado Conda y tendrá que resolverlo en su propio caso. Para obtener los detalles específicos de su entorno dado, dependiendo de dónde haya instalado anaconda, puede usar lo siguiente:

 $ ~/ -name virtualenvwrapper.sh # to see where you have this. May already be prefilled in your shell profile[.zshrc or .profile] $ which python # to know the default python your project or rather where conda has installed python for you 

NO OLVIDE DESINSTALAR E INSTALAR virtualenv y virtualenvwrapper como se destaca en otras respuestas.

Simplemente me topé con este problema en un Centos 7.4.

Ninguna de las respuestas anteriores fue adecuada para mi caso. Después de investigar un poco, localicé esto con permisos de archivos demasiado estrictos en libs de python (creo que la instalación de python en Centos difiere un poco de otros sistemas POSIX).

Por lo tanto, si todo lo demás falla, es posible que desee comprobar que el usuario con el que está tratando de ejecutar virtualenvwrapper puede leer las librerías de python.

En particular, verifique: /usr/lib/python3.6 /usr/lib64/python3.6 (corrija las rutas para diferentes versiones de python).

Si ve que el group y others no tienen permisos de lectura y ejecución allí, agréguelos: sudo chmod og+rx -R /usr/lib/python3.6 sudo chmod og+rx -R /usr/lib64/python3.6

Nota: No estoy seguro de si esto funciona en contra de una política de seguridad de Centos, pero es probable que sea seguro siempre y cuando no ofrezca revisiones de write .

En mi situación (OS X 10.13.6), esto lo hizo

 brew install python2 --upgrade