python - tutorial - virtualenvwrapper windows




Python Virtualenv-Aucun module nommé virtualenvwrapper.hook_loader (10)

Cela m'est arrivé et je l'ai résolu en réinstallant pip . Ce qui est arrivé est ce which pip donné à /usr/bin/pip , alors que which python donné à /usr/local/bin/python . Le chemin de pip devrait être /usr/local/bin/pip . Cela est probablement tombé en panne lorsque j'ai mis à jour mon installation Python.

Si vous suivez la documentation de pip, vous pourrez facilement le réinstaller pour votre configuration Python en cours de fonctionnement. Tu dois:

  1. Téléchargez le script get-pip.py (directement lié à la documentation de pip ).
  2. Exécutez python get-pip.py .

Cela a résolu le problème pour moi.

J'utilise Mac OS 10.6.8. et je voulais installer en plus de python 2.6 également python 2.7 et utiliser python 2.7 dans un nouveau virtualenv. J'ai exécuté les étapes suivantes:

J'ai téléchargé Python 2.7 et l'ai installé:

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

Ensuite, je lance la commande pour configurer un nouveau virtualenv en utilisant python2.7:

mkvirtualenv --python=python2.7 mynewenv

Mon .bash_profile ressemble à ceci:

# 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

Maintenant, lorsque j'ouvre la console, le message d'erreur suivant s'affiche.

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.

J'ai également découvert dans un autre article que je devrais mettre à niveau virtualenvwrapper. Cela n'a pas aidé.

sudo pip install virtualenvwrapper --upgrade

Toute aide serait appréciée.


Couru dans un problème similaire après l'installation du projet Conda / Anaconda. Cette question m'a été très utile pour résoudre mon problème sur MAC.La résolution du problème avait pour .zshrc la partie pertinente de mon .zshrc ressemble à ceci:

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

Cela dépend de l'endroit où j'ai installé Conda et vous devrez le comprendre dans votre cas. Pour obtenir les spécificités de votre environnement donné en fonction de l’emplacement où vous avez installé anaconda, vous pouvez utiliser les éléments suivants:

$  ~/ -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

N'OUBLIEZ PAS DE DÉSINSTALLER ET D'INSTALLER virtualenv et virtualenvwrapper, comme indiqué dans d'autres réponses.


Dans mon cas, l'ajout de cette ligne dans mon fichier .zshrc a fait l'affaire,

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

De même, si vous avez des macports, assurez-vous que /opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin est répertorié avant /Library/Frameworks/Python.framework/Versions/2.7/bin et /usr/local/bin dans PATH. Puis définissez ce qui suit dans votre .profile :

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

J'ai eu ce problème après la désinstallation du paquet virtualenvwrapper . Lorsque je me connectais à n'importe quel utilisateur (ou su à un autre), j'obtenais:

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 solution consistait à supprimer le fichier /etc/bash_completion.d/virtualenvwrapper .

Modifier:

Ne supprimez pas le fichier ci-dessus ou il ne sera pas recréé si vous réinstallez virtualenvwrapper . Au lieu de cela, vous devez purge le package virtualenvwrapper lorsque vous le désinstallez. Comme ceci sur Debian:

apt-get remove --purge virtualenvwrapper

J'ai la même erreur . J'ai découvert que j'avais l'ancienne version de pip. J'ai corrigé l'erreur en mettant simplement à niveau le pip.


Je viens d'installer Python 3.5, d'essayer le virtualenvwrapper puis de rencontrer ce problème. J'ai compris que python3.5 était installé dans /usr/local/bin/python3.5 et NOT /usr/bin/python3.5 . J'ai donc révisé mon script .bash_profile pour qu'il ressemble à ce qui suit et tout semble fonctionner maintenant

# 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

Je suis assez novice pour ne pas savoir comment ce «local» dans le chemin menant à python3.5 va me toucher à long terme, mais pour l’instant, cela fonctionne.


Je viens de tomber sur cette question sur un Centos 7.4.

Aucune des réponses ci-dessus ne convenait à mon cas. Après avoir fouillé un peu, j'ai identifié ce problème avec des autorisations de fichiers trop strictes dans les bibliothèques python (je suppose que l'installation de Python sur Centos diffère un peu des autres systèmes POSIX).

Donc, si tout le reste échoue, vous voudrez peut-être vérifier que vos bibliothèques python sont lisibles par l'utilisateur avec lequel vous essayez d'exécuter virtualenvwrapper.

En particulier, vérifiez: /usr/lib/python3.6 /usr/lib64/python3.6 ( /usr/lib/python3.6 /usr/lib64/python3.6 les chemins pour différentes versions de python).

Si vous voyez que ce group et les others disposent pas des autorisations de lecture et d’exécution, ajoutez-les ensuite: sudo chmod og+rx -R /usr/lib/python3.6 sudo chmod og+rx -R /usr/lib64/python3.6

Remarque: Je ne sais pas si cela va à l’encontre d’une politique de sécurité Centos, mais c’est probablement sans danger tant que vous ne donnez pas d’ write .


Même s'il y a une réponse acceptée, je pensais mettre ce qui était réglé pour moi.

Premièrement, j'ai installé Python et venais de le mettre à niveau via Homebrew . J'utilise aussi ZSH, donc si certains bits ne correspondent pas vraiment à votre sortie, c'est peut-être pour cela.

En lançant brew info python et en parcourant la sortie, j'ai trouvé les informations intéressantes suivantes:

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"

J'ai donc ajouté ceci à mon script de démarrage de terminal, comme indiqué, et l'erreur n ne s'affiche plus.

Remarque: je l'ai inséré dans une autre partie de PATH et l'erreur a persisté au démarrage.


Un certain nombre de facteurs peuvent provoquer cette erreur. Si votre environnement est

  • CentOS 7, avec python3 installé à partir d' epel-release
  • pip3 installé avec python3.4 get-pip.py
  • virtualenvwrapper installé avec pip3
  • Environnement virtuel python créé avec mkvirtualenv -p /usr/bin/python3.4

Ensuite, pour une raison quelconque, l'environnement virtuel est créé sans la bibliothèque virtualenvwrapper. Vous pouvez le résoudre simplement en l'installant à nouveau, mais cette fois dans le virtlualenv

[[email protected] ~] $ 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)[[email protected] ~] $ pip install virtualenvwrapper




virtualenvwrapper