it-swarm.com.de

Was verursacht ImportError: Kein Modul namens pkg_resources nach dem Upgrade von Python unter os X?

Ich habe gerade Python auf meinem Mac auf 2.6.4 aktualisiert. Ich habe das dmg-Paket installiert.

Die Binärdatei schien meinen Python-Pfad nicht korrekt zu setzen, daher fügte ich '/usr/local/lib/python2.6/site-packages' in .bash_profile hinzu.

>>> pprint.pprint(sys.path)  
['',
'/Users/Bryan/work/Django-trunk', 
'/usr/local/lib/python2.6/site-packages',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python26.Zip',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-darwin',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/plat-mac/lib-scriptpackages',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-tk',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-old',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/lib-dynload',  
'/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages']

Anscheinend sind das nicht alle erforderlichen Pfade, da ich iPython nicht ausführen kann.

$ ipython  
Traceback (most recent call last):  
  File "/usr/local/bin/ipython", line 5, in <module>  
  from pkg_resources import load_entry_point  
ImportError: No module named `pkg_resources`

Ich habe Google-Suchvorgänge durchgeführt und kann nicht wirklich herausfinden, wie pkg_resources installiert wird oder ob es sich auf dem Pfad befindet.

Was muss ich tun, um das Problem zu beheben?

79
BryanWheelock

[UPDATE] TL; DR pkg_resources wird entweder von Distribute oder setuptools bereitgestellt. 

[UPDATE 2] Wie auf der PyCon 2013 angekündigt, wurden die Projekte Distribute und setuptools wieder zusammengeführt. Distribute ist jetzt veraltet und Sie sollten nur die neue aktuelle setuptools verwenden. Versuche dies:

curl -O https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
python ez_setup.py

Oder verwenden Sie besser eine aktuelle pip als High-Level-Schnittstelle, die setuptools unter den Abdeckungen verwendet.

[Längere Antwort für das spezifische Problem von OP]:

Sie sagen es nicht in Ihrer Frage, aber ich gehe davon aus, dass Sie ein Upgrade von dem von Apple bereitgestellten Python (2,5 auf 10.5 oder 2.6.1 auf 10.6) oder von einem Python 2.5 von Python.org durchgeführt haben. In jedem dieser Fälle ist es wichtig, dass jede Python-Instanz über eine eigene Bibliothek verfügt, einschließlich einer eigenen Site-Packages-Bibliothek, in der zusätzliche Pakete installiert werden. (Übrigens verwendet ohnehin keiner von ihnen /usr/local/lib.) Das bedeutet, dass Sie die zusätzlichen Pakete installieren müssen, die Sie für Ihren neuen Python 2.6 benötigen. Am einfachsten ist es, wenn Sie zunächst sicherstellen, dass der neue Python2.6 zuerst in Ihrer Suche $PATH angezeigt wird (dh, indem Sie python2.6 eingeben, wird er wie erwartet aufgerufen). Das Installationsprogramm von python2.6 sollte Ihren .bash_profile geändert haben, um das bin-Verzeichnis des Frameworks vor $PATH zu setzen. Dann installieren Sie easy_install mit setuptools und befolgen Sie die dortigen Anweisungen. Das pkg_resources-Modul wird bei diesem Schritt ebenfalls automatisch installiert.

Verwenden Sie dann die neu installierte Version von easy_install (oder pip), um ipython zu installieren.

easy_install ipython

oder

pip install ipython

Es sollte automatisch am korrekten site-packages-Speicherort für diese Python-Instanz installiert werden.

73
Ned Deily

Ich habe die gleiche ImportError gefunden. Irgendwie wurde das Paket setuptools in meiner Python-Umgebung gelöscht.

Um das Problem zu beheben, führen Sie das Setup-Skript für setuptools aus:

curl https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | python

Wenn Sie eine Version von distribute oder eine setuptools unter 0,6 haben, müssen Sie diese zuerst deinstallieren. *

Siehe Installationsanweisungen für weitere Details.


* Wenn Sie bereits über eine distribute-Funktion verfügen, ist ein Upgrade auf den "Kompatibilitäts-Wrapper", der Sie auf setuptools schaltet, einfacher. Aber wenn die Dinge bereits kaputt sind, versuchen Sie es nicht.

76
cwc

Wenn Sie ein Upgrade Ihres Pythons unter Mac OS 10.7 durchführen und pkg_resources nicht funktioniert, können Sie einfach das Setuptool wie oben erwähnt installieren.

Sudo pip install setuptools --upgrade
or Sudo easy_install install setuptools --upgrade
7
vutran

Auf meinem System (OSX 10.6) ist dieses Paket um 

/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/pkg_resources.py

Ich hoffe, das hilft Ihnen dabei herauszufinden, ob es fehlt oder nicht auf Ihrem Weg.

3
Bryan McLemore

Der Grund könnte darin liegen, dass sich das IPython-Modul nicht in Ihrem PYTHONPATH befindet.

Wenn Sie IPython nicht herunterladen und dann python setup.py installieren 

Das Setup fügt das Modul IPython nicht zu Ihrem Python-Pfad hinzu. Vielleicht möchten Sie es manuell zu Ihrem PYTHONPATH hinzufügen. Es sollte funktionieren, nachdem Sie getan haben:

export PYTHONPATH =/pathtoIPython: $ PYTHONPATH

Fügen Sie diese Zeile in .bashrc oder .profile hinzu, um sie dauerhaft zu machen.

1
Ben

Ich bin mit dem gleichen Problem konfrontiert, als ich an einem Autobahnprojekt arbeite. 

1) Also lade ich das setuptools.-0.9.8.tar.gz-Formular https://pypi.python.org/packages/source/s/setuptools/ herunter und entpacke es. 

2) Dann bekomme ich das pkg_resources-Modul und kopiere es in den Ordner, in dem es benötigt wurde. ** In meinem Fall war dieser Ordner C:\Python27\Lib\site-packages\autobahn

0
Nithila

In meinem Fall wurde das Paket python-pygments vermisst. Sie können es per Befehl beheben:

Sudo apt-get install python-pygments

Wenn ein Problem mit pandoc vorliegt. Sie sollten pandoc und pandoc-citeproc installieren.

Sudo apt-get install pandoc pandoc-citeproc

0
fluke-ng

Ich habe diesen Fehler bei Ubuntu erhalten, und Folgendes hat für mich funktioniert:

Die Dropbox-Binärdateien wurden entfernt und erneut heruntergeladen. Führen Sie dazu Folgendes aus:

Sudo rm -rf /var/lib/dropbox/.dropbox-dist
dropbox start -i
0
peeol

Mir ist klar, dass dies nicht mit OSX zusammenhängt, aber auf einem eingebetteten System (Beagle Bone Angstrom) hatte ich genau dieselbe Fehlermeldung. Durch die Installation der folgenden ipk-Pakete wurde das Problem behoben.

opkg install python-setuptools
opkg install python-pip
0
Mark Lakata