427 Stimmen

Python 3: ImportError "Kein Modul namens Setuptools"

Ich habe Probleme beim Installieren von Paketen in Python 3.

Ich habe immer Pakete mit setup.py install installiert. Aber jetzt, wenn ich versuche das Paket ansicolors zu installieren, bekomme ich:

ImportError: "Kein Modul namens Setuptools"

Ich habe keine Ahnung, was ich tun soll, weil ich setuptools in der Vergangenheit nicht installiert hatte. Trotzdem konnte ich viele Pakete mit setup.py install ohne setuptools installieren. Warum sollte ich jetzt setuptools bekommen?

Ich kann setuptools nicht einmal installieren, weil ich Python 3.3 habe und setuptools Python 3 nicht unterstützt.

Warum funktioniert mein Installationsbefehl nicht mehr?

706voto

tiago Punkte 21844

Ihre Datei setup.py benötigt setuptools. Einige Python-Pakete verwendeten früher distutils für die Verteilung, aber die meisten verwenden jetzt setuptools, ein umfassenderes Paket. Hier ist eine Frage zu den Unterschieden zwischen ihnen.

Um setuptools unter Debian zu installieren:

sudo apt-get install python3-setuptools

Für eine ältere Version von Python (Python 2.x):

sudo apt-get install python-setuptools

1 Stimmen

Vielen Dank für diesen Beitrag.. hat mir sehr geholfen.. Viele Leute empfehlen setuptools, aber es ist nicht möglich, es in Py3.3 zu installieren.. das Distribute funktioniert wie ein Zauber.

26 Stimmen

Ich musste es mit "python3" installieren, damit es funktioniert: sudo apt-get install python3-setuptools

0 Stimmen

Auf Slackware64 14.2? Weil ich versucht habe, es neu zu installieren, und das Problem besteht weiterhin?

183voto

Robert Lujo Punkte 14020

EDIT: Offizielle Setuptools-Dokumentationsseite:

Wenn Sie Python 2 >=2.7.9 oder Python 3 >=3.4 von python.org installiert haben, haben Sie bereits pip und setuptools, müssen jedoch auf die neueste Version aktualisieren:

Auf Linux oder OS X:

pip install -U pip setuptools 

Auf Windows:

python -m pip install -U pip setuptools

Daher ist der Rest dieses Beitrags zu Distribute veraltet (z. B. funktionieren einige Links nicht).

EDIT 2022-02-04

Ab Python 3.10 wird Distutils veraltet und wird in Python 3.12 entfernt sein - verwenden Sie setuptools:

Das gesamte Distutils-Paket ist veraltet und wird in Python 3.12 entfernt. Seine Funktionalität zur Spezifizierung von Paketbuilds wurde bereits vollständig durch Drittanbieterpakete setuptools und packaging ersetzt ...

Distribute (veraltet)

Distribute - ist ein setuptools-Fork, der "Python-3-Unterstützung" bietet. Installationsanweisungen für distribute(setuptools) + pip:

curl -O http://python-distribute.org/distribute_setup.py
python distribute_setup.py
easy_install pip

Ähnliches Problem hier.

UPDATE: Distribute scheint veraltet zu sein, d. h. in Setuptools integriert zu sein: Distribute ist ein veralteter Fork des Setuptools-Projekts. Seit der Veröffentlichung von Setuptools 0.7 sind setuptools und Distribute verschmolzen und Distribute wird nicht mehr gewartet. Alle laufenden Bemühungen sollten sich auf das Setuptools-Projekt und die Setuptools-Dokumentation beziehen.

Sie können es mit den Anweisungen auf der Setuptools-Pypi-Seite versuchen (Ich habe dies nicht getestet, tut mir leid :( ):

wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O - | python
easy_install pip

2 Stimmen

Vielen Dank, ich bin mir nicht sicher, wie das mein Problem gelöst hat, aber es hat funktioniert. sofort! Ich hatte ernsthafte Probleme beim Versuch, distribute zu installieren. Dies muss die Installation irgendwie erzwungen haben, da sudo pip install distribute nicht funktionieren würde. Meine Probleme sind dokumentiert unter stackoverflow.com/questions/16846742/…

2 Stimmen

Das funktioniert plattformübergreifend (Win), während die akzeptierte Antwort nicht anwendbar ist. Danke!

1 Stimmen

URLs sind nicht mehr gültig .. könnten Sie bitte überprüfen ?

61voto

Bjarte Brandt Punkte 3836

Stellen Sie sicher, dass Sie die neueste Version von pip ausführen

Ich habe versucht, Ansible zu installieren und es ist fehlgeschlagen mit

ModuleNotFoundError: Kein Modul namens 'setuptools_rust'

python3-setuptools war bereits vorhanden, daher wurde das Problem durch ein Upgrade von pip gelöst.

pip3 install -U pip

2 Stimmen

Das Problem wurde einfach gelöst, indem pip mit "pip3 install -U pip" aktualisiert wurde. Danke, Kumpel!

0 Stimmen

Von allen Lösungen ist dies diejenige, die funktioniert hat.

38voto

Dawngerpony Punkte 2830

Ich habe dies innerhalb eines virtualenv unter Oracle Linux 6.4 mit Python 2.6 gemacht, daher waren die auf apt basierenden Lösungen für mich keine Option, ebenso wenig die Ideen für Python 2.7. Meine Lösung bestand darin, meine Version von setuptools zu aktualisieren, die von virtualenv installiert wurde:

pip install --upgrade setuptools

Danach konnte ich Pakete in das virtualenv installieren.

2 Stimmen

Hinweis: Es gab ein Problem mit "Einträge können nicht aus der nicht vorhandenen Datei entfernt werden..." Hinzufügen von --ignore-installed zu dem obigen Befehl hat das behoben.

34voto

Yaakov Bressler Punkte 5963

Die Lösung, die für mich funktioniert hat, bestand darin, meine setuptools zu aktualisieren:

python3 -m pip install --upgrade pip setuptools wheel

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X