it-swarm.com.de

Nach dem Installieren von Lion wird ein Python Virtual Env-Fehler angezeigt

Ich habe Python und Virtualenv seit einiger Zeit nicht mehr berührt, und ich glaube, ich habe meinen MBP mit Virtualenv und Pip eingerichtet, habe aber völlig vergessen, wie dieses Zeug funktioniert.

Nach der Installation von lion erhalte ich diese Fehlermeldung, wenn ich ein neues Terminalfenster öffne:

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.

Tipps zur Behebung dieses Problems?

Versuchen:

easy_install eventlet

Ich habe das bekommen:

Traceback (most recent call last):
  File "/usr/local/bin/easy_install", line 5, in <module>
    from pkg_resources import load_entry_point
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.py", line 2607, in <module>
    parse_requirements(__requires__), Environment()
  File "/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.py", line 565, in resolve
    raise DistributionNotFound(req)  # XXX put more info here
pkg_resources.DistributionNotFound: setuptools==0.6c11
26
Blankman

Ich bin ein absoluter Python/Virtualenv-Anfänger. Ich hatte jedoch genau das gleiche Problem und fand eine Lösung, die für mich funktionierte. Ich glaube, dass dies sehr unterschiedlich sein wird, je nachdem, wie Sie Python & Virtualenv ursprünglich eingerichtet haben.

In meinem Fall löschte das Lion-Upgrade den gesamten Inhalt meines /Library/Python/2.*/site-packages vollständig aus, beließ jedoch die nun defekten ausführbaren Dateien (die mit dem Inhalt dieses Ordners verlinkt sind) in /usr/local/bin. Ich glaube, dass dies die Hauptursache für die kryptischen Importfehler "Kein Modul" ist.

Bei der Überprüfung meiner .bash_history hatte ich ursprünglich easy_install zur Installation von pip und dann pip für die Installation von virtualenv und virtualenvwrapper verwendet. Nachdem ich diese Schritte wiederholt hatte, konnte ich meine alten virtuellen Umgebungen, in denen noch alle auf 10.6 installierten Pakete enthalten waren, erneut eingeben. Beachten Sie jedoch, dass 10.6 standardmäßig mit Python 2.6 geliefert wurde. Wenn für Ihre Pakete Python 2.6 erforderlich ist, sollten Sie zunächst Ihre Standard-Python-Version auf 2.6 ändern.

Schritt für Schritt:

  1. Ich habe alte Virtualenv-Konfigurationsbefehle aus meinen Shell-Startskripts (z. B. .bash_profile) entfernt. Starten Sie eine neue Terminalsitzung.
  2. (optional) Wählen Sie die Version von Python aus, die Sie verwenden möchten, z.
    defaults write com.Apple.versioner.python Version 2.6
  3. Sudo easy_install pip. Es scheint, dass /Library/Python/2.*/site-packages jetzt Administratorrechte benötigt. Ich kann mich nicht erinnern, dass dies in 10.6 der Fall ist (oder zumindest meine Bash-Geschichte spiegelt das nicht wider).
  4. Sudo pip install virtualenv
  5. Sudo pip install virtualenvwrapper
  6. Zum Schluss habe ich die in Schritt 1 deaktivierten Virtualenv-Konfigurationsbefehle wieder aktiviert. Bei einer neuen Terminalsitzung war alles so, wie es war (siehe pip freeze -l, um lokale Pakete in dieser virtuellen Umgebung anzuzeigen). Meiner Ansicht nach.
41
Matt B.

Meine Lösung auf Ubuntu 14.04, auf der ich python3.4 installiert hatte, bestand darin, dies der Datei ~/.bashrc hinzuzufügen, so dass der Schwanz davon so aussah:

#Setup virtual envwrapper for python in case default doesn't work
VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.4
export VIRTUALENVWRAPPER_PYTHON

# needed for virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/projects
source /usr/local/bin/virtualenvwrapper.sh

Als ich pip freeze auf dem regulären Python 2.7, das war 2.7, machte, wurden Pakete korrekt installiert, aber immer noch beschwert. Obwohl es klagte, funktionierte die Virtualenv. 

Ich habe die Fehler später entfernt, indem ich sicherstellte, dass alle Dateien in den ~/.virtualenvs zum Benutzer und zur Gruppe gehören, anstatt ein paar von ihnen zu root zu machen. So was:

bash cd ~ Sudo chown -R ubuntu:ubuntu .virtualenvs

22
hum3

Haben Sie virtualenv für den von Ihnen verwendeten Python installiert? Wenn Sie das von Apple bereitgestellte Standardsystem Python 2.7 verwenden, ist das Paket virtualenv nicht vorinstalliert. Verwenden Sie /usr/bin/easy_install, um es zu installieren.

UPDATE: Nur um klar zu sein, auf Lion 10.7 gibt es jetzt einen von Apple gelieferten Python 2.7, der die Standardversion ist, wenn Sie /usr/bin/python verwenden. Apple liefert auch weiterhin einen Python 2.6 und einen 2.5 in Lion aus, wie in 10.6 Snow Leopard. Sie können die gewünschte Version auswählen, indem Sie explizit darauf verweisen, wie in /usr/bin/python2.7, /usr/bin/python2.6 usw., und Sie can den von /usr/bin/python verwendeten Standard ändern. Lesen Sie die Apple-Manpage (man python) für Details. Der entscheidende Punkt ist jedoch, dass Python-Pakete im Allgemeinen in einer bestimmten Version installiert werden. Wenn Sie etwas für 2.6 installiert haben, müssen Sie es mit python2.7 (oder easy_install-2.7) installieren, wenn Sie es mit 2.7 verwenden möchten.

6
Ned Deily

Blankman,

Ich bin auf den gleichen Fehler gestoßen, aber mein Problem war im Nachhinein unkompliziert. Ich teile meine Arbeit unten. YMMV.

Ich habe (home) brew zum Installieren von Python 2.7.2 verwendet und verwende es als Standard. Es wird über/usr/local/bin/python referenziert. Die mit Mac OS X Lion gelieferte Standard-Python-Installation wird unter/usr/bin/python referenziert. 

-

Das Startskript virtualwrapper.sh hat die Umgebungsvariable VIRTUALENVWRAPPER_PYTHON überprüft und, falls leer, mit '/ usr/local/bin/python' gefüllt. Dies war der Grund für meinen Fehler. Das Initialisieren auf '/ usr/local/bin/python' hat das Problem für mich behoben. 

HTH.

Zu klären. Ich habe python 2.7.2 mithilfe von brew installiert und mit virtualenv kombiniert, um meine Entwicklungsumgebungen besser verwalten zu können. Ich versuche, das vorinstallierte Setup so weit wie möglich zu umgehen.

5
Amar

Um das zweite Problem zu beheben, sollten Sie setuptools erneut installieren.

Um das erste Problem zu beheben, installieren Sie einfach den virtualenvwrapper damit.

Grundsätzlich müssen Sie bei der Installation von Lion alle Python-Site-Pakete neu installieren.

2
Pavel Shvedov

Für alle anderen, die da draußen Haare ziehen ... Ich bekam den gleichen Fehler, aber nur, wenn ich scp (sichere Kopie) auf einem meiner anderen Macs ausprobierte. Es dauerte eine Weile, bis mir klar wurde, dass die Nachricht für den Mac, auf dem ich mich angemeldet hatte, relevant war. Für os x läuft .bash_profile beim Anmelden und ich habe meine .bashrc nicht korrekt aus dem .bash_profile bezogen, um die Umgebungseinstellungen von Ned abzurufen Umrisse. Stellen Sie daher sicher, dass diese Einstellungen auch für den Computer festgelegt sind, bei dem Sie sich anmelden.

1
smileBot

ja, nach dem Upgrade auf Marvericks müssen Sie pip und virtualenv erneut mit/usr/bin/easy_install installieren.

1
allen.bang

Ich musste setup-tools neu installieren (in diesem Fall das Python 2.7-Ei für Mountain Lion), und dann konnte ich pip neu installieren und dann virtualenv.

1
Imanol

Ich habe dies nach einem Upgrade auf Yosemite erhalten. Um das zu beheben musste ich laufen: 

Sudo pip install --upgrade setuptools
0
donturner