Kein Modul mit dem Namen pkg_resources

451

Ich stelle eine Django-App auf einem Entwicklungsserver bereit und stelle diesen Fehler beim Ausführen fest pip install -r requirements.txt:

Traceback (most recent call last):
  File "/var/www/mydir/virtualenvs/dev/bin/pip", line 5, in <module>
    from pkg_resources import load_entry_point
ImportError: No module named pkg_resources

pkg_resourcesscheint verteilt zu sein mit setuptools. Anfangs dachte ich, dass dies möglicherweise nicht auf Python in der virtuellen Umgebung installiert ist, also installierte ich setuptools 2.6(dieselbe Version wie Python) auf den Python-Site-Paketen in der virtuellen Umgebung mit dem folgenden Befehl:

sh setuptools-0.6c11-py2.6.egg --install-dir /var/www/mydir/virtualenvs/dev/lib/python2.6/site-packages

BEARBEITEN: Dies geschieht nur innerhalb der virtuellen Umgebung. Wenn ich eine Konsole außerhalb der virtuellen Umgebung öffne, pkg_resourcesist diese vorhanden, es wird jedoch immer noch der gleiche Fehler angezeigt .

Irgendwelche Ideen, warum pkg_resourcesnicht auf dem Weg ist?

Zündstrom
quelle
Bei der Installation von nltk tritt das gleiche Problem auf. Gute Frage und hilfreiche Antwort
laike9m
4
pip uninstall -y setuptoolsund pip install setuptools==39.1.0arbeitete dann für mich an Anaconda unter Windows 10.
Ryan
1
@ Ryan hat auch unter Ubuntu 16.04 für mich gearbeitet, danke, Sir!
ElectRocnic

Antworten:

634

Juli 2018 Update

Die meisten Leute sollten jetzt pip install setuptools(möglicherweise mit sudo) verwenden.

Einige müssen (wieder) das python-setuptoolsInstallationspaket über ihren Paket - Manager ( apt-get install, yum installusw.).

Dieses Problem kann stark von Ihrem Betriebssystem und Ihrer Entwicklungsumgebung abhängen. Sehen Sie sich das Erbe / andere Antworten unten an, wenn das oben Gesagte für Sie nicht funktioniert.

Erläuterung

Diese Fehlermeldung wird durch ein fehlendes / defektes Python- setuptoolsPaket verursacht. Gemäß Matt Ms Kommentar und Setuptools-Problem Nr. 581 ist das unten genannte Bootstrap-Skript nicht mehr die empfohlene Installationsmethode.

Die Anweisungen für das Bootstrap-Skript bleiben unten, falls es für irgendjemanden noch hilfreich ist.

Legacy-Antwort

Ich bin ImportErrorheute dem gleichen begegnet, als ich versucht habe, pip zu benutzen. Irgendwie wurde das setuptoolsPaket in meiner Python-Umgebung gelöscht.

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

wget https://bootstrap.pypa.io/ez_setup.py -O - | python

(oder wenn Sie nicht wgetinstalliert haben (z. B. OS X), versuchen Sie es

curl https://bootstrap.pypa.io/ez_setup.py | python

möglicherweise mit sudovorangestelltem.)

Wenn Sie eine Version von distributeoder setuptoolsunter 0.6 haben, müssen Sie diese zuerst deinstallieren. *

Weitere Informationen finden Sie in der Installationsanleitung .


* Wenn Sie bereits arbeiten distribute, setuptoolsist es einfacher , ein Upgrade auf den "Kompatibilitäts-Wrapper" durchzuführen, zu dem Sie wechseln. Aber wenn die Dinge schon kaputt sind, versuchen Sie das nicht.

cwc
quelle
42
Das Piping Curl zu einem lokalen Befehl macht mir immer Angst, aber das funktioniert großartig. :) Ich war sudo pythondurch YMMV gelaufen.
Nik Reiman
4
Unter Cygwin musste ich das Python-Setuptools- Paket installieren . Dadurch funktionierte easy_install wieder, das das gleiche Problem hatte. Dann habe ich easy_install pipPip wieder zum Laufen gebracht. Mein Problem trat auf, als Cygwin Python hinter meinem Rücken von 2.6 auf 2.7 aktualisierte, während ich etwas anderes installierte.
Steve Pitchers
5
Dies war die beste Antwort im letzten Jahr… aber seit Mitte 2013 distributeist sie veraltet und setuptoolsihr Nachfolger. Ich werde die Antwort bearbeiten, um sie zu aktualisieren, aber ich bin nicht sicher, ob dies der beste Weg ist, damit jemand die Bearbeitung zurücksetzen kann. In diesem Fall: Gehen Sie hier .
Abarnert
1
Diese URL hat bei mir nicht funktioniert, aber diese hat funktioniert: peak.telecommunity.com/dist/ez_setup.py
ajtrichards
1
@Cerin: Es wäre für alle hilfreicher, wenn Sie sagen, was passiert ist, als Sie es versucht haben. Und haben Sie verwendet sudo, wie @Nik oben erwähnt?
Michael Scheper
124
sudo apt-get install --reinstall python-pkg-resources

hat es für mich in Debian behoben. Die Deinstallation einiger .deb-Pakete (in meinem Fall Twisted Set) scheint den Pfad gebrochen zu haben, den Python zum Suchen von Paketen verwendet

Marek
quelle
9
Ich benutze Python 3, also musste ich sudo apt-get install ausführen - python3-pkg-resources neu installieren und das hat es behoben. Vielen Dank!
Robert Townley
hat nicht geholfen mit yapf ich denke, etwas mit python3 / python2 zu tun
don bright
53

Ich habe diesen Fehler beim Versuch gesehen, Rhodecode auf einer virtuellen Umgebung unter Ubuntu 13.10 zu installieren. Für mich war die Lösung zu laufen

pip install --upgrade setuptools
pip install --upgrade distribute 

bevor ich easy_install rhodecode starte.

Ali Akdurak
quelle
12
pip install --upgrade setuptoolsallein hat den Trick für mich getan.
Ryan Tuck
Ich brauchtepip install --upgrade setuptools --user
dfrankow
5
Ich kann pip install --upgrade setuptoolswegen des gleichen Fehlers nicht laufen :No module named pkg_resources
McLawrence
1
pip install --upgrade distributehat den Job bei der Verwendung des venv-Moduls von Python 3 gemacht. Das von Python 2 unterstützte --distributeFlag virtualenv muss jedoch in distributeUmgebungen installiert werden, die von erstellt wurden venv.
Nirmal
34

Es ist mir auch passiert. Ich denke, das Problem wird auftreten, wenn die Anforderung.txt einen "Verteilen" -Eintrag enthält, während die virtuelle Umgebung setuptools verwendet. Pip wird versuchen, Setuptools zu patchen, um Platz für die Verteilung zu schaffen, aber leider wird es auf halbem Weg fehlschlagen.

Die einfache Lösung besteht darin, Ihre aktuelle virtuelle Umgebung zu löschen und dann eine neue virtuelle Umgebung mit dem Argument --distribute zu erstellen.

Ein Beispiel für die Verwendung von virtualenvwrapper:

$ deactivate
$ rmvirtualenv yourenv
$ mkvirtualenv yourenv --distribute
$ workon yourenv
$ pip install -r requirements.txt
Kinderwagen
quelle
2
Dies hat mir geholfen, als keine der anderen Lösungen (mit Ubuntu 16.04)
MIkee
In Umgebungen, die mit dem venv-Modul von Python 3 erstellt wurden, reicht die Ausführung pip install -U distributenach dem Aktivieren der Umgebung aus.
Nirmal
17

In CentOS 6 wurde die Installation des Pakets python-setuptools behoben.

yum install python-setuptools
Paul
quelle
Dies funktioniert in Debian, wenn Sie "yum" durch "sudo apt-get" ersetzen. Auch: sudo apt-get install python3-setuptools
Gridtrak
Dies ist derjenige, der es für mich getan hat.
Tao Starbow
Ich hatte dieses Problem unter CentOS 7 und Python-Setuptools wurde bereits installiert, aber sudo yum reinstall python-setuptoolsbehoben.
Coneslayer
Hat den Fehler an CentOS.org gemeldet. Bugs.centos.org/view.php?id=14042
20.
14

Ich hatte diesen Fehler früher und die Antwort mit der höchsten Bewertung gab mir einen Fehler beim Herunterladen der ez_setup.pyDatei. Ich habe eine andere Quelle gefunden, damit Sie den Befehl ausführen können:

curl http://peak.telecommunity.com/dist/ez_setup.py | python

Ich habe festgestellt, dass ich es auch verwenden musste, sudoum es zum Laufen zu bringen, sodass Sie möglicherweise Folgendes ausführen müssen:

sudo curl http://peak.telecommunity.com/dist/ez_setup.py | sudo python

Ich habe auch einen anderen Speicherort erstellt, von dem das Skript heruntergeladen werden kann:

https://gist.github.com/ajtrichards/42e73562a89edb1039f3

Ajtrichards
quelle
Der Befehl "curl" würde kein sudo benötigen, also könnte es sein:curl http://peak.telecommunity.com/dist/ez_setup.py | sudo python
tombrown52
1
Diese Antwort hat mich mit dem Zusatz "| sudo python" gerettet, weil "| python" alleine nicht funktioniert hat! Danke
patti_jane
14

Nachdem ich einige dieser Antworten ausprobiert und mich dann an einen Kollegen gewandt hatte, funktionierte für mich unter Ubuntu 16.04 Folgendes:

pip install --force-reinstall -U setuptools
pip install --force-reinstall -U pip

In meinem Fall hatte nur eine alte Version von Kissen 3.1.1 Probleme (Kissen 4.x funktionierte einwandfrei), und das ist jetzt behoben!

ptim
quelle
8

Benötigte ein bisschen mehr Sudo. Verwenden Sie dann easy_install, um pip zu installieren. Funktioniert.

sudo wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python
sudo easy_install pip
Tarion
quelle
1
sudosollte nicht in einem virtualenv
igniteflow
Es stimmt, ich hatte gerade das gleiche Problem ohne eine virtuelle Umgebung.
Tarion
5

Ich habe den Fehler mit virtualenv folgendermaßen behoben:

Kopiert pkg_resources.py von

/Library/Python/2.7/site-packages/setuptools

zu

/Library/Python/2.7/site-packages/

Dies mag eine billige Problemumgehung sein, aber es hat bei mir funktioniert.

.

Wenn keine Setup-Tools vorhanden sind, können Sie versuchen, System-Site-Pakete virtualenv --system-site-packages /DESTINATION DIRECTORYzu installieren, indem Sie Folgendes eingeben und den letzten Teil in das Verzeichnis ändern, in das Sie installieren möchten. pkg_rousources.pybefindet sich unter diesem Verzeichnis in lib / python2.7 / site-packages

mrgnw
quelle
Ja, in einigen Projekten ist diese Lösung am besten (für mich)
nguyên
3

Für mich wurde dieser Fehler verursacht, weil ich ein Unterverzeichnis namens "site" hatte! Ich weiß nicht, ob dies ein Pip-Fehler ist oder nicht, aber ich begann mit:

/some/dir/requirements.txt / some / dir / site /

pip install -r require.txt würde nicht funktionieren und mir den obigen Fehler geben!

Das Umbenennen des Unterordners von "site" in "src" hat das Problem behoben! Vielleicht sucht pip nach "Site-Paketen"? Verrückt.

jdg
quelle
2

Ich hatte dieses Problem, als ich meine virtuelle Umgebung als einen anderen Benutzer als den, der sie erstellt hat, aktiviert hatte. Es scheint ein Berechtigungsproblem zu sein. Ich habe dies entdeckt, als ich die Antwort von @cwc ausprobiert und dies in der Ausgabe gesehen habe:

Installing easy_install script to /path/env/bin
error: /path/env/bin/easy_install: Permission denied

Das Zurückschalten zu dem Benutzer, der die virtuelle Umgebung erstellt hat, und das Ausführen des ursprünglichen pip installBefehls verliefen problemlos. Hoffe das hilft!

Martijn de Milliano
quelle
2

Ich hatte dieses Problem auch heute. Ich habe das Problem nur in der virtuellen Umgebung.

Die Lösung für mich bestand darin, die virtuelle Umgebung zu deaktivieren, virtualenv mit pip zu löschen, zu deinstallieren und neu zu installieren. Danach habe ich eine neue virtuelle Umgebung für mein Projekt erstellt, und dann hat pip sowohl in der virtuellen Umgebung als auch in der normalen Umgebung einwandfrei funktioniert.

arno_v
quelle
2

Sieht so aus, als wären sie von Bitbucket weggezogen und befinden sich jetzt auf Github ( https://github.com/pypa/setuptools) ).

Der auszuführende Befehl lautet:

wget https://bootstrap.pypa.io/ez_setup.py -O - | sudo python
Shadyhill
quelle
Datei "/python/Python-3.5.1/Lib/urllib/request.py", Zeile 162, in urlopen return opener.open (URL, Daten, Zeitüberschreitung) Datei "/python/Python-3.5.1/Lib/urllib /request.py ", Zeile 465, in geöffneter Datei" /python/Python-3.5.1/Lib/urllib/request.py ", Zeile 488, in _open 'unknown_open', req) Datei" /python/Python-3.5 .1 / Lib / urllib / request.py ", Zeile 443, in _call_chain result = func (* args) Datei" /python/Python-3.5.1/Lib/urllib/request.py ", Zeile 1310, in unknown_open raise URLError ('unbekannter URL-Typ:% s'% Typ) urllib.error.URLError: <urlopen error unbekannter URL-Typ: https>
JDOaktown
2

Für mich stellte sich heraus, dass es sich um ein Berechtigungsproblem handelte site-packages. Da es nur meine Entwicklungsumgebung ist, habe ich die Berechtigungen erhöht und alles funktioniert wieder:

sudo chmod -R a+rwx /path/to/my/venv/lib/python2.7/site-packages/
kat
quelle
2

Unter Windows mit Python 3.7 funktionierte dies für mich:

pip install --upgrade setuptools --user

--user Installiert Pakete in Ihrem Home-Verzeichnis, für das keine Administratorrechte erforderlich sind.

David Jablonski
quelle
2

Die einfache Lösung ist, dass Sie Conda verwenden können, um Setuptools oder die gesamte Umgebung zu aktualisieren. (Speziell für Windows-Benutzer.)

conda upgrade -c anaconda setuptools

Wenn die Setuptools entfernt werden, müssen Sie Setuptools erneut installieren.

conda install -c anaconda setuptools

Wenn diese Methoden nicht funktionieren, können Sie die Conda-Umgebung aktualisieren. Ich empfehle jedoch nicht, einige Pakete neu zu installieren und zu deinstallieren, da sich die Situation danach dadurch verschärft.

weibin Wang
quelle
1

Anscheinend fehlen Ihnen Setuptools. Einige virtualenv-Versionen verwenden standardmäßig Distribute anstelle von Setuptools. Verwenden Sie die --setuptoolsOption beim Erstellen der virtuellen Umgebung oder legen Sie die VIRTUALENV_SETUPTOOLS=1in Ihrer Umgebung fest.

Danilo Bargen
quelle
1

In meinem Fall hatte ich zunächst 2 Python-Versionen installiert und später die ältere gelöscht. Also beim Erstellen der virtuellen Umgebung

virtualenv venv

bezog sich auf die deinstallierte Python

Was hat bei mir funktioniert?

python3 -m virtualenv venv

Gleiches gilt, wenn Sie versuchen, pip zu verwenden.

Afsan Abdulali Gujarati
quelle
0

Ich bin auf diese Antwort gestoßen, als ich versucht habe, diesem Handbuch für OSX zu folgen . Was für mich funktionierte war, dass ich nach dem Laufen python get-pipAUCH musste easy_install pip. Damit wurde das Problem behoben, dass Pip überhaupt nicht ausgeführt werden konnte. Ich hatte ein paar alte Macport-Sachen installiert. Das könnte in Konflikt geraten sein.

KitsuneYMG
quelle
0

Unter Windows habe ich pip installiert, das von www.lfd.uci.edu/~gohlke/pythonlibs/ heruntergeladen wurde, und bin dann auf dieses Problem gestoßen.

Also hätte ich zuerst setuptools (easy_install) installieren sollen.

thinker3
quelle
0

Installieren Sie einfach Ihre setuptoolsdurch:

$ sudo wget https://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz#md5=7df2a529a074f613b509fb44feefefe74e
$ tar -zxvf setuptools-0.6c11.tar.gz
$ cd setuptools-0.6c11/
$ sudo python setup.py build
$ sudo python setup.py install
$ sudo pip install --upgrade setuptools

dann wird alles gut.

Scott Yang
quelle
0

Ich benutze CentOS 6.7 und mein Python wurde gerade von 2.6.6 auf 2.7.11 aktualisiert, nachdem ich so viele verschiedene Antworten ausprobiert hatte, schließlich erledigt die folgende die Aufgabe:

sudo yum install python-devel

Hoffe jemandem in der gleichen Situation zu helfen.

Shellbye
quelle
0

Keine der geposteten Antworten hat bei mir funktioniert, also habe ich pip neu installiert und es hat funktioniert!

sudo apt-get install python-setuptools python-dev build-essential 

sudo easy_install pip 

pip install --upgrade setuptools

(Referenz: http://www.saltycrane.com/blog/2010/02/how-install-pip-ubuntu/ )

user13107
quelle
Traceback (letzter Aufruf zuletzt): Datei "/ usr / bin / easy_install", Zeile 5, in <Modul> von pkg_resources import load_entry_point ImportError: Kein Modul mit dem Namen 'pkg_resources'
JDOaktown
owner-Dimension-3000 owner # sudo easy_install pip Traceback (letzter Aufruf zuletzt): Datei "/ usr / bin / easy_install", Zeile 5, in <Modul> aus pkg_resources import load_entry_point ImportError: Kein Modul mit dem Namen 'pkg_resources' owner-Dimension -3000 owner # pip install --upgrade setuptools Traceback (letzter Aufruf zuletzt): Datei "/ usr / bin / pip", Zeile 5, in <Modul> von pkg_resources import load_entry_point ImportError: Kein Modul mit dem Namen 'pkg_resources' owner-Dimension -3000 Besitzer #
JDOaktown
Hast du zuerst die installierte Pip-Version entfernt?
user13107
0

Ich bin auf dieses Problem gestoßen, nachdem ich meinen Ubuntu-Build aktualisiert habe. Es scheint in allen meinen virtuellen Umgebungen Setup-Tools durchlaufen und entfernt zu haben.

Um dies zu beheben, habe ich die virtuelle Umgebung wieder im Zielverzeichnis installiert. Dadurch wurden fehlende Setup-Tools bereinigt und die Dinge wieder zum Laufen gebracht.

z.B:

~/RepoDir/TestProject$ virtualenv TestEnvironmentDir
Steve D.
quelle
0

Für mich war es eine gute Lösung, die --no-downloadOption für virtualenv ( VIRTUALENV_NO_DOWNLOAD=1 toxfür tox.) Zu verwenden.

Baczek
quelle
0

Bei Opensuse 42.1 wurde dieses Problem durch Folgendes behoben:

zypper in python-Pygments
David Hamner
quelle
0

ImportError: Kein Modul mit dem Namen pkg_resources: Die Lösung besteht darin, Python Pip mit dem folgenden Befehl neu zu installieren.

Schritt: 1 Melden Sie sich beim Root-Benutzer an.

sudo su root

Schritt: 2 Deinstallieren Sie das Python-Pip-Paket, falls vorhanden.

apt-get purge -y python-pip

Schritt: 3 Laden Sie Dateien mit dem Befehl wget herunter (Datei herunterladen in pwd)

wget https://bootstrap.pypa.io/get-pip.py

Schritt: 4 Führen Sie die Python-Datei aus.

python ./get-pip.py

Schritt: 5 Beenden Sie den Installationsbefehl.

apt-get install python-pip

Hinweis: Der Benutzer muss root sein.

Tukadiya Ramesh
quelle
0

Ich habe diesen Fehler in meiner Google App Engine-Umgebung festgestellt. Und pip install -t lib setuptoolsdas Problem behoben.

Murat Çorlu
quelle
0

Wenn Sie Python 3 verwenden, sollten Sie pip3 anstelle von pip verwenden. Der Befehl sieht aus wie$ pip3 install requirements.txt

user3266968
quelle