python - mkvirtualenv - virtualenvwrapper ubuntu
Python Virtualenv-No hay un módulo llamado virtualenvwrapper.hook_loader (14)
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.
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 buena 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.
Acabo de instalar Python 3.5, probé el virtualenvwrapper y luego tuve este problema. Me di cuenta de que python3.5 estaba instalado 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.
Además, si tiene macports, asegúrese de que /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin
esté listado 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`
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 de los comandos 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 de instalar 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
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
En mi situación (OS X 10.13.6), esto lo hizo
brew install python2 --upgrade
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
. El camino 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 reinstalar fácilmente pip
para su configuración actual de Python. Necesitas:
- Descargue el script get-pip.py (directamente vinculado desde la documentación de
pip
). - 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 desdeepel-release
-
pip3
instalado conpython3.4 get-pip.py
-
virtualenvwrapper
instalado conpip3
- 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 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'' (<class ''ImportError''>: No module named ''virtualenvwrapper'')
/home/user/.virtualenvs/venv/bin/python3.4: Error while finding spec for ''virtualenvwrapper.hook_loader'' (<class ''ImportError''>: No module named ''virtualenvwrapper'')
# the virtualenv should now activated
(venv)[user@localhost ~] $ pip install 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 usando u
Me sale el mismo error . Descubrí que tenía una versión antigua de pip. Solucioné el error simplemente actualizando el pip.
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 .zshrc
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á intentando ejecutar virtualenvwrapper puede leer sus 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
.
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
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 "<string>", line 1, in <module>
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