Die Installation von Python Pip schlägt fehl: Ungültiger Befehl egg_info

205

Ich finde das in letzter Zeit oft, wenn ich versuche, ein Python- Paket mit pip zu installieren die folgenden Fehler erhalte, .

Ich habe online eine Referenz gefunden, dass man " python2 setup.py install " verwenden muss " aus dem Download-Verzeichnis verwenden muss, und tatsächlich , dass dies dann funktioniert, wenn ich das Paket manuell finde und herunterlade (von pypi).

Ich weiß jedoch nicht, wohin pip Pakete herunterlädt und / oder warum dies auf diese Weise fehlschlägt.

Ich habe versucht, ein Pip-Upgrade durchzuführen, aber es ist auch auf ähnliche Weise fehlgeschlagen, mit einer Reihe von Fehlern "Unbekannte Verteilungsoption" (entry_points, zip_safe, test_suite, tests_require)!

Der Versuch, ActiveStates Pypm zu verwenden, schlägt fehl, da sie eine kleinere Bibliotheksbasis haben und diese Pakete nicht enthalten.

C:\test>pip install requests-oauth
Downloading/unpacking requests-oauth
  Downloading requests-oauth-0.4.1.tar.gz
  Running setup.py egg_info for package requests-oauth
    E:\Plang\ActivePython\lib\distutils\dist.py:267: UserWarning: Unknown distribution option: 'zip_safe'
      warnings.warn(msg)
    E:\Plang\ActivePython\lib\distutils\dist.py:267: UserWarning: Unknown distribution option: 'install_requires'
      warnings.warn(msg)
    usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
       or: -c --help [cmd1 cmd2 ...]
       or: -c --help-commands
       or: -c cmd --help

    error: invalid command 'egg_info'
    Complete output from command python setup.py egg_info:
    E:\Plang\ActivePython\lib\distutils\dist.py:267: UserWarning: Unknown distribution option: 'zip_safe'
  warnings.warn(msg)

E:\Plang\ActivePython\lib\distutils\dist.py:267: UserWarning: Unknown distribution option: 'install_requires'
  warnings.warn(msg)

usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
   or: -c --help [cmd1 cmd2 ...]
   or: -c --help-commands
   or: -c cmd --help

error: invalid command 'egg_info'
guthrie
quelle
Für mich hat es funktioniert zu installierenpython-dev
lmaooooo

Antworten:

313

Installieren Sie Distribute , das mit geliefert wird egg_info.

Sollte so einfach sein wie pip install Distribute.

Distribute wurde ab Version 0.7 in Setuptools zusammengeführt. Wenn Sie eine Version <= 0.6 verwenden, aktualisieren Sie mit pip install --upgrade setuptoolsoder easy_install -U setuptools.

Randall Ma
quelle
79
funktioniert nicht für mich. Ich habe Distribute installiert, erhalte aber immer noch den Ei-Info-Fehler fast jedes Mal, wenn ich versuche, ein Paket zu installieren
Riot Goes Woof
2
Für diejenigen wie @Zorpix, die immer noch Fehler erhalten, möchten Sie möglicherweise überprüfen, welche Version von pip Sie aufrufen. Unter Ubuntu stellte ich fest, dass ich eine Distribution-Version hatte, die immer noch aufgerufen wurde.
James Snyder
1
Damit die neue Version von setuptools funktioniert, müssen Sie Distribution möglicherweise auch von Hand oder durch Löschen deinstallieren/usr/local/lib/python2.7/dist-packages/distribute-*
Michael
12
Wenn Sie nach dem Entfernen von Distribute immer noch Probleme haben oder Pip Setuptools nicht ordnungsgemäß aktualisiert, versuchen Sie, easy_install -U setuptoolsdies hat bei mir funktioniert .
Kissgyorgy
5
Seltsamerweise wurde dadurch der Fehler für alle Installationen außer behoben pip install -U pip.
Cerin
58

Da Distribute wieder in Setuptools zusammengeführt wurde, wird jetzt empfohlen, stattdessen Setuptools zu installieren / zu aktualisieren:

[sudo] pip install --upgrade setuptools
Gringo Suave
quelle
7
Aus irgendeinem Grund musste ich dies zweimal ausführen (in meiner virtuellen Umgebung hatte ich 0.6.49 und setuptools 0.6c11 verteilt) und konnte dann die neueste Version von pip ohne Probleme installieren.
Glarrain
3
@glarrain es ist mir passiert! Danke für die Warnung! Der erste deinstallierte Durchgang verteilt 0.7 und der zweite deinstallierte Setuptool 0.6c11
Luftangriff
22

Denken Sie daran, dass Sie dies möglicherweise tun müssen, pip install --upgrade Distributewenn Sie es bereits installiert haben und auf einigen Systemen pipmöglicherweise pip2Python2 aufgerufen wird (es ist auf meinem).

Naypam
quelle
1
Hinweis: Dies muss für eine typische Python-Installation im Administratormodus unter Windows erfolgen. Andernfalls kann ein Installationsfehler für Distribute leicht übersehen werden.
Steven Bluen
13

Ich hatte dieses Problem sowie einige andere Probleme mit Brewed Python unter OS X 10.9 (Mavericks).

sudo pip install --upgrade setuptools

hat bei mir nicht funktioniert und ich denke, mein Setuptools / Distribute-Setup war verpfuscht.

Ich habe es endlich zum Laufen gebracht

sudo easy_install -U setuptools
Ian weisberger
quelle
11

Keines der oben genannten Probleme hat bei Ubuntu 12.04 LTS (Precise Pangolin) für mich funktioniert , und so habe ich es am Ende behoben:

Laden Sie ez_setup.py von den Download-Setuptools herunter (siehe Abschnitt "Installationsanweisungen") und dann:

$ sudo python ez_setup.py

Ich hoffe es spart jemandem etwas Zeit.

user3637041
quelle
9

Dieser Fehler kann auftreten, wenn Sie versuchen, zu installieren pycurl.

In diesem Fall sollten Sie tun

sudo apt-get install libcurl4-gnutls-dev librtmp-dev

(hier gegründet: https://gist.github.com/lxneng/1031014 )

Sergei Panfilov
quelle
8

Unter CentOS 6.5 lautet die kurze Antwort einer Neuinstallation:

yum -y install python-pip pip install -U pip pip install -U setuptools pip install -U setuptools

Sie sehen kein Double, Sie müssen das Setuptools-Upgrade zweimal ausführen. Die lange Antwort ist unten:

Die Installation des python-pipPakets mit yum ist python-setuptoolseine Abhängigkeit. Es ist eine ziemlich alte Version und wird daher tatsächlich installiert distribute (0.6.10). Nach der Installation eines Paketmanagers möchten wir diesen in der Regel aktualisierenpip install -U pip . Die aktuelle Version von pip ist für mich 1.5.6.

Jetzt aktualisieren wir setuptools und diese Version von pip ist intelligent genug, um zu wissen, dass sie zuerst die alte Version von Distribute entfernen sollte. Dies geschieht, aber anstatt die neueste Version von setuptools zu installieren, wird es installiert setuptools (0.6c11).

Zu diesem Zeitpunkt sind alle möglichen Dinge aufgrund dieser extrem alten Version von Setuptools kaputt, aber wir sind tatsächlich auf halbem Weg. Wenn wir jetzt genau denselben Befehl ein zweites Mal pip install -U setuptoolsausführen , wird die alte Version von setuptools entfernt und Version 5.5.1 installiert. Ich weiß nicht, warum Pip uns nicht auf einmal direkt zur neuen Version bringt, aber genau das passiert und hoffentlich hilft es anderen, dies zu sehen und zu wissen, dass Sie nicht verrückt werden.

liquidki
quelle
6

Es sieht so aus, als ob die Standard-easy_install an ihrem aktuellen Speicherort fehlerhaft ist:

$ which easy_install /usr/bin/easy_install

Eine Möglichkeit, dies zu überwinden, besteht darin, easy_install in Site-Paketen zu verwenden. Beispielsweise:

$ sudo python /Library/Python/2.7/site-packages/easy_install.py boto

Johnpaulhayes
quelle
6

Ich hatte das gleiche Problem und habe alle oben genannten Antworten ausprobiert. Leider hat keines der oben genannten Verfahren funktioniert.

Als Hinweis löse ich das endlich durch pip uninstall distribute.

Yin Song
quelle
3
Dies hat das Problem für mich behoben. Es stellte sich heraus, dass ich eine alte Version von Distribute installiert hatte und eine noch ältere Version von Setuptools installiert war und den neueren Setuptools vorgezogen wurde, die von meinem Systempackager installiert wurden ... Deinstallieren von Setuptools und Distribute und erneutes Installieren von Setuptools mit meinem Systempackager Das Problem wurde für mich behoben.
Dominic LoBue
5

Ich weiß, dass dies eine ältere Frage ist, aber hier sind die Schritte, mit denen ich die cassandra-driverInstallation unter Windows 7 / Python2 durchgeführt habe. Ich habe Windows 10 / Python3 zu Hause, wo ich dies heute Abend testen werde. Ich habe bestätigt, dass dies auch unter Windows 10 mit Python 2 und 3 funktioniert.

Problem

Command "python setup.py egg_info" failed with error code 1 in c:\users\Frito\appdata\local\temp\pip-build-7dgmdc\cassandra-driver

TL; DR-Lösung

Lösung (Ich würde gerne jemanden erklären, warum dies funktioniert hat)

  • Versucht pip install cassandra-driverund die obige Fehlermeldung erhalten
  • Versucht pip install --pre cassandra-driverund bekam den folgenden Fehler
distutils.errors.DistutilsError: Setup script exited with error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat).
Get it from http://aka.ms/vcpython27

Command "c:\users\Frito\.virtualenvs\symdash\scripts\python.exe -u -c "import setuptools, tokenize;__file__='c:\\users\\Frito\\appdata\\local\\temp\\pip-build-sesxxu\\cassandra-driver\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record  c:\users\Frito\appdata\local\temp\pip-ujsxsk-record\install-record.txt --single-version-externally-managed --compile --install-headers c:\users\Frito\.virtualenvs\symdash\include\site\python2.7\cassandra-driver"  failed with error code 1 in  c:\users\Frito\appdata\local\temp\pip-build-sesxxu\cassandra-driver
  • Eingerichtet Microsoft Visual C++ Compiler for Python 2.7
  • Erfolgreich ausgeführt pip install --pre cassandra-driver
  • Erfolgreich ausgeführt pip uninstall cassandra-driver
  • Erfolgreich ausgeführt pip install cassandra-driver

Um es noch einmal zu wiederholen, ich bin mir nicht sicher, warum das funktioniert hat. Momentan sind meine beiden wichtigsten Schlussfolgerungen, dass entweder der C ++ - Compiler erforderlich ist oder dass beim Ausführen der --preOption beim ersten Mal einige Abhängigkeiten installiert wurden, die bei der "regulären" Installation fehlten. Ich werde heute Abend nach der Arbeit aktualisieren, wenn ich mehr Details habe.

Frito
quelle
1

pip install -U setuptoolsund easy_installlegte Ei-Info in das falsche Verzeichnis.

Dann habe ich einfach neu installiert apt-get install python-dev. Lassen Sie mich danach die gewünschten Treiber installieren

shanwar
quelle
1

Versuchen Sie den folgenden Befehl:

pip install setuptools==28.8.0
vp9031
quelle
0

Ich konvertiere nur die Antwort von liquidki in Ubuntu-Befehle. Auf einem Ubuntu-basierten System funktioniert es!:

sudo apt -y install python-pip
pip install -U pip
sudo pip install -U setuptools
efkan
quelle
0

Für mich hat das Upgrade von pip von 8.1.1 auf 9.0.1 dieses Problem gelöst.

Sie können so etwas wie ein sudo -H pip2 install --upgrade pipUpgrade Ihrer Pip-Version ausführen .

Qin Heyang
quelle
0

Ich erhalte auch eine ähnliche Fehlermeldung "Befehl 'python setup.pygg_info' mit Fehlercode 1 fehlgeschlagen", wenn ich cairosvg mit Befehl pip install cairosvgin einer virtuellen Umgebung installieren möchte .

Dann habe ich beide pip install --upgrade pipund pip install --upgrade setuptoolsvor dem Ausführen versucht pip3 install cairosvg, aber ich erhalte immer noch diesen Fehler.

Ich kann diesen Fehler mit sudo vor dem Installationsbefehl beseitigen : sudo pip install cairosvg. Beachten Sie jedoch, dass der Befehl mit sudo das Paket für den Systempython und nicht für die virtuelle Umgebung installiert.

Daher überprüfe ich die Fehlermeldung weiter und stelle fest , dass ich den Fehler bei der Installation von cairocffi erhalte . Dann installiere ich eine bestimmte Version von cairocffi ( siehe diese Antwort ), bevor ich cairosvg installiere. So löse ich mein Problem.

Liushan CHEN
quelle