Ich verwende Mac OS 10.6.8. und wollte neben python 2.6 auch python 2.7 installieren und python 2.7 in einer neuen virtualenv verwenden. Ich habe folgende Schritte ausgeführt:
Ich habe Python 2.7 heruntergeladen und installiert:
http://www.python.org/ftp/python/2.7.3/python-2.7.3-macosx10.6.dmg
Dann führe ich den Befehl aus, um mit python2.7 eine neue virtuelle Umgebung einzurichten:
mkvirtualenv --python=python2.7 mynewenv
Mein .bash_profile sieht folgendermaßen aus:
# 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
Wenn ich jetzt die Konsole öffne, wird die folgende Fehlermeldung angezeigt.
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.
Ich habe auch in einem anderen Beitrag festgestellt, dass ich virtualenvwrapper aktualisieren sollte. Das hat nicht geholfen.
sudo pip install virtualenvwrapper --upgrade
Jede Hilfe wäre dankbar.
python
virtualenv
virtualenvwrapper
Thomas Kremmel
quelle
quelle
easy_install
mkvirtualenv
und habe sie dann (mitCtrl+C
) gestoppt . Beim Versuch, die virtuelle Umgebung erneut zu erstellen, gab es einige Reste vom letzten Mal. Ich ging in meinen envs-Ordner und löschte die unvollständig erstellte Umgebung. Danachmkvirtualenv
funktionierte der gleiche Befehl ordnungsgemäß.Antworten:
Das Problem wurde mit den folgenden Schritten behoben:
#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
Ordnen Sie den Exportbefehl neu an, damit er vor den virtualenv-Befehlen in meiner .bash_profile-Datei platziert wird:
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
Setuptools neu installieren, einfach installieren und PIP. Dies ist offensichtlich erforderlich, damit sie mit der neuen Python-Version ordnungsgemäß funktionieren:
sudo sh setuptools-0.6c11-py2.7.egg sudo easy_install-2.7 pip pip install virtualenv
quelle
usr/local/Cellar/python/<PYTHON-VERSION>/bin/
.Wenn Sie Macports haben, stellen Sie außerdem sicher, dass diese
/opt/local/Library/Frameworks/Python.framework/Versions/2.7/bin
vor/Library/Frameworks/Python.framework/Versions/2.7/bin
und/usr/local/bin
in PATH aufgeführt sind. Stellen Sie dann Folgendes in Sie ein.profile
:quelle
VIRTUALENVWRAPPER_PYTHON
mein Problem gelöst.In meinem Fall hat das Hinzufügen dieser Zeile zu meiner .zshrc-Datei den Trick getan:
export VIRTUALENVWRAPPER_PYTHON=/usr/local/Cellar/python/2.7.13/bin/python2.7
quelle
export VIRTUALENVWRAPPER_PYTHON=/usr/local/Cellar/python/3.6.5/bin/python3.6
für die neueste Version.export VIRTUALENVWRAPPER_PYTHON="which python3"
Für alle, die Ubuntu 18.04 und Python 3+ verwenden , war dies der Trick für mich:
which python3 # outputs /usr/bin/python3 export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3 source `which virtualenvwrapper.sh`
quelle
Dies ist mir passiert und ich habe es durch Neuinstallation gelöst
pip
. Was hatte geschah war , dasswhich pip
gab/usr/bin/pip
als Ergebnis, währendwhich python
gab/usr/local/bin/python
. Der Weg fürpip
sollte sein/usr/local/bin/pip
. Dies ist wahrscheinlich kaputt gegangen, als ich meine Python-Installation aktualisiert habe.Wenn Sie der Pip-Dokumentation folgen , können
pip
Sie das aktuelle Python-Setup problemlos neu installieren . Du brauchst:pip
der Dokumentation ).python get-pip.py
.Dies löste das Problem für mich.
quelle
Es gibt eine Reihe von Dingen, die diesen Fehler verursachen können. Wenn Ihre Umgebung ist
python3
installiert vonepel-release
pip3
installiert mitpython3.4 get-pip.py
virtualenvwrapper
installiert mitpip3
mkvirtualenv -p /usr/bin/python3.4
Aus irgendeinem Grund wird dann die virtuelle Umgebung ohne die virtualenvwrapper-Bibliothek erstellt. Sie können es lösen, indem Sie es einfach erneut installieren, diesmal jedoch innerhalb der virtuellen Umgebung
[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
quelle
Ich musste nur sicherstellen, dass / usr / local / bin / python existiert.
Für mich war es einfach:
ln -s /usr/local/bin/python2.7 /usr/local/bin/python
quelle
Ich bekomme den gleichen Fehler. Ich fand heraus, dass ich eine alte Version von Pip hatte. Ich habe den Fehler durch einfaches Upgrade des Pip behoben.
quelle
Ich habe gerade Python 3.5 installiert, den virtualenvwrapper ausprobiert und hatte dann dieses Problem. Mir wurde klar, dass python3.5 installiert war
/usr/local/bin/python3.5
und NICHT/usr/bin/python3.5
. Also habe ich mein .bash_profile-Skript so überarbeitet, dass es wie folgt aussieht, und jetzt scheint alles zu funktionieren# 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
Ich bin ein Anfänger genug, um nicht sicher zu sein, wie sich dieses "Lokal" auf dem Weg zu Python3.5 auf lange Sicht auf mich auswirken wird, aber im Moment funktioniert es.
quelle
Ich hatte dieses Problem nach der Deinstallation des
virtualenvwrapper
Pakets. Wenn ich mich bei einem Benutzer (odersu
einem anderen) anmeldete, erhielt ich: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.
Die Lösung bestand darin, die/etc/bash_completion.d/virtualenvwrapper
Datei zu löschen .Bearbeiten:
Löschen Sie die obige Datei nicht, da sie sonst bei einer Neuinstallation nicht neu erstellt wird
virtualenvwrapper
. Stattdessen müssen Siepurge
dasvirtualenvwrapper
Paket bei der Deinstallation ausführen. So auf Debian:quelle
Versuchen Sie, Ihr
virtualenv
und zu deinstallieren undvirtualenvwrapper
erneut mitpip
Version 2.7 zu installieren (glaube ich).Ich bin auf den gleichen Fehler gestoßen und habe dies einfach getan und mein Problem gelöst.
Ich benutze U.
quelle
Obwohl es eine akzeptierte Antwort gibt, dachte ich, ich würde sagen, was es für mich behoben hat.
Zuerst habe ich Python installiert und es gerade über Homebrew aktualisiert . Ich verwende auch ZSH. Wenn einige Bits nicht ganz mit Ihrer Ausgabe übereinstimmen, ist dies möglicherweise der Grund.
Durch Ausführen von Brew Info Python und Durchsuchen der Ausgabe habe ich die folgenden netten Informationen gefunden:
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"
Also habe ich dies wie gezeigt zu meinem Terminal-Startskript hinzugefügt und der Fehler n wird länger angezeigt.
Hinweis: Ich habe dies in einen anderen Teil meines PFADS eingefügt und der Fehler blieb beim Start bestehen.
quelle
Nach der Installation des Conda / Anaconda-Projekts ist ein ähnliches Problem aufgetreten. Diese Frage war sehr hilfreich bei der Lösung meines Problems unter MAC. Bei der Lösung des Problems sah mein
.zshrc
relevanter Teil folgendermaßen aus:export VIRTUALENVWRAPPER_PYTHON=$HOME/Applications/conda/bin/python source $HOME/Applications/conda/bin/virtualenvwrapper.sh
Dies hängt davon ab, wo ich conda installiert habe, und Sie müssen das in Ihrem eigenen Fall herausfinden. Um die Details für Ihre gegebene Umgebung zu erhalten, je nachdem, wo Sie Anaconda installiert haben, können Sie Folgendes verwenden:
$ ~/ -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
VERGESSEN SIE NICHT, virtualenv und virtualenvwrapper zu deinstallieren und zu installieren, wie in anderen Antworten hervorgehoben.
quelle
Ich bin gerade auf einem Centos 7.4 auf dieses Problem gestoßen.
Keine der obigen Antworten passte zu meinem Fall. Nachdem ich mich ein bisschen umgesehen hatte, stellte ich fest, dass dies zu strenge Dateiberechtigungen in Python-Bibliotheken sind (ich denke, die Python-Installation unter Centos unterscheidet sich ein wenig von anderen POSIX-Systemen).
Wenn also alles andere fehlschlägt, möchten Sie möglicherweise überprüfen, ob Ihre Python-Bibliotheken für den Benutzer lesbar sind, mit dem Sie virtualenvwrapper ausführen möchten.
Überprüfen Sie insbesondere:
/usr/lib/python3.6 /usr/lib64/python3.6
(Ändern Sie die Pfade für verschiedene Python-Versionen).Wenn Sie dies sehen
group
und dortothers
keine Lese- und Ausführungsberechtigungen haben, fügen Sie diese hinzu:sudo chmod og+rx -R /usr/lib/python3.6 sudo chmod og+rx -R /usr/lib64/python3.6
Hinweis: Ich bin nicht sicher, ob dies gegen eine Centos-Sicherheitsrichtlinie verstößt, aber es ist wahrscheinlich sicher, solange Sie keine
write
Persmisionen geben .quelle
In meiner Situation (OS X 10.13.6) hat dies funktioniert
quelle
Ich hatte das gleiche Problem wie dieses und verbrachte so viel Zeit damit, herauszufinden, was falsch war. Und ich fand endlich heraus, was los war.
Zuerst habe ich gesucht, wo der Ordner virtualenvwrapper existiert. In meinem Fall /usr/local/lib/python3.7/site-packages. Im Ordner befindet sich hook_loader.py, der den Fehler verursacht hat.
Als nächstes habe ich Python-Skript verwendet.
python3 import sys;print('\n'.join(sys.path))
Ich konnte das Verzeichnis /usr/local/lib/python3.7/site-packages nicht finden, also schrieb ich endlich:
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3.7/site-packages
zur .bashrc-Datei. Getan.
Bedeutung von PYTHON PATH
Wie Sie im obigen Link sehen können, erweitert PYTHONPATH den Standardsuchpfad für Module.
quelle