Instalacja pip Python kończy się niepowodzeniem: nieprawidłowe polecenie egg_info

205

Ostatnio często to stwierdzam, gdy próbuję zainstalować pakiet Python za pomocą pip , otrzymuję poniższe błędy.

Znalazłem w Internecie odniesienie, że należy użyć „ python2 setup.py install ” z katalogu pobierania i rzeczywiście stwierdziłem, że to zadziała, jeśli ręcznie znajdę i pobiorę pakiet (z pypi).

Ale nie wiem, gdzie pip pobiera pakiety i / lub dlaczego nie działa w ten sposób.

Próbowałem zrobić aktualizację pip, ale również nie udało się w podobny sposób, z wieloma błędami „Nieznana opcja dystrybucji” (punkty wejścia, zip_safe, test_suite, testy_wymagane)!

Próba użycia pypm ActiveState kończy się niepowodzeniem, ponieważ mają one mniejszą bazę bibliotek i nie zawiera tych pakietów.

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
źródło
Dla mnie działało instalowaniepython-dev
lmaooooo 15.04.16

Odpowiedzi:

313

Zainstaluj dystrybucję , która jest w komplecie egg_info.

Powinno być tak proste jak pip install Distribute.

Dystrybucja została połączona w Setuptools od wersji 0.7. Jeśli używasz wersji <= 0.6, zaktualizuj za pomocą pip install --upgrade setuptoolslub easy_install -U setuptools.

Randall Ma
źródło
79
nie działa dla mnie. Mam zainstalowaną dystrybucję, ale wciąż pojawia się błąd informacji o jajku prawie za każdym razem, gdy próbuję zainstalować pakiet
Riot Goes Woof
2
Dla takich jak @Zorpix, którzy wciąż dostają błędy, możesz sprawdzić, do której wersji pipa dzwonisz. Na Ubuntu odkryłem, że mam wersję pakietu dystrybucyjnego, która wciąż jest wywoływana.
James Snyder
1
Aby nowa wersja setuptools zadziałała, może być konieczne odinstalowanie dystrybucji ręcznie lub przez usunięcie/usr/local/lib/python2.7/dist-packages/distribute-*
Michael
12
jeśli nadal masz problemy po usunięciu dystrybucji lub pip nie aktualizuje poprawnie setuptools, spróbuj easy_install -U setuptoolsTo działało dla mnie.
kissgyorgy
5
Dziwne, to naprawiło błąd dla wszystkich instalacji oprócz pip install -U pip .
Cerin
58

Ponieważ dystrybucja została ponownie połączona w setuptools, zaleca się teraz instalację / aktualizację setuptools:

[sudo] pip install --upgrade setuptools
Gringo Suave
źródło
7
Z jakiegoś powodu musiałem uruchomić to dwukrotnie (w mojej wirtualnej env miałem dystrybucję 0.6.49 i setuptools 0.6c11), a następnie mogłem bez problemu zainstalować najnowszą wersję pipa.
glarrain
3
@glarrain to mi się przydarzyło! dzięki za heads up! odinstalowany pierwszy przebieg dystrybuuje 0,7, a drugi odinstalowany setuptools 0.6c11
nalot
22

Pamiętaj, że możesz to zrobić, pip install --upgrade Distributejeśli masz już zainstalowany, a na niektórych systemach pipmożesz zostać wywołany pip2w języku Python2 (jest on mój).

Naypam
źródło
1
Uwaga: należy to zrobić w trybie administratora w systemie Windows w przypadku typowej instalacji w języku Python. W przeciwnym razie łatwo przeoczyć błąd instalacji dla Distribute.
Steven Bluen
13

Miałem ten problem, a także kilka innych problemów z Brewed Python systemie OS X 10.9 (Mavericks).

sudo pip install --upgrade setuptools

nie działało dla mnie i myślę, że moja konfiguracja setuptools / distribute została spartaczona.

W końcu udało mi się uruchomić

sudo easy_install -U setuptools
Ian Weisberger
źródło
11

Żadne z powyższych nie działało dla mnie na Ubuntu 12.04 LTS (Precise Pangolin), a oto jak to ostatecznie naprawiłem:

Pobierz plik ez_setup.py z pobranych programów konfiguracyjnych (patrz sekcja „Instrukcje instalacji”), a następnie:

$ sudo python ez_setup.py

Mam nadzieję, że zaoszczędzi komuś trochę czasu.

użytkownik3637041
źródło
9

Ten błąd może wystąpić podczas próby instalacji pycurl.

W takim przypadku powinieneś to zrobić

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

(założony tutaj: https://gist.github.com/lxneng/1031014 )

Siergiej Panfilow
źródło
8

W CentOS 6.5 krótka odpowiedź z czystej instalacji to:

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

Nie widzisz podwójnie, musisz uruchomić aktualizację setuptools dwa razy. Długa odpowiedź jest poniżej:

Instalowanie python-pippakietu przy użyciu yum przynosi python-setuptoolszależność. To dość stara wersja, dlatego właśnie się instaluje distribute (0.6.10). Po zainstalowaniu menedżera pakietów zazwyczaj chcemy go zaktualizować, więc robimy topip install -U pip . Obecna wersja pip dla mnie to 1.5.6.

Teraz przechodzimy do aktualizacji setuptools, a ta wersja pipa jest wystarczająco inteligentna, aby wiedzieć, że najpierw powinna usunąć starą wersję dystrybucji. Robi to, ale następnie instaluje najnowszą wersję setuptools setuptools (0.6c11).

W tym momencie wszystko jest zepsute z powodu tej bardzo starej wersji setuptools, ale tak naprawdę jesteśmy w połowie drogi. Jeśli teraz uruchomimy dokładnie tę samą komendę po raz drugi, pip install -U setuptoolsstara wersja setuptools zostanie usunięta, a wersja 5.5.1 zostanie zainstalowana. Nie wiem, dlaczego pip nie zabiera nas prosto do nowej wersji za jednym razem, ale tak właśnie się dzieje i mam nadzieję, że pomoże innym to zobaczyć i wiedzieć, że nie oszalejesz.

liquidki
źródło
6

Wygląda na to, że domyślna łatwa instalacja jest zepsuta w bieżącej lokalizacji:

$ which easy_install /usr/bin/easy_install

Sposobem na pokonanie tego jest użycie easy_install w pakietach witryn. Na przykład:

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

johnpaulhayes
źródło
6

Napotkałem ten sam problem i wypróbowałem wszystkie powyższe odpowiedzi. Ale niestety żadne z powyższych nie działało.

Dla przypomnienia, w końcu rozwiązałem ten problem pip uninstall distribute.

Yin Song
źródło
3
To rozwiązało problem. Okazało się, że mam zainstalowaną starą wersję dystrybucji, a nawet starszą wersję setuptoolów zainstalowaną i preferowaną w porównaniu z nowszymi setuptoolami zainstalowanymi przez mojego systemowego pakowacza ... Odinstalowanie obu setuptoolów i dystrybucji, a następnie ponowną instalację setuptoolów za pomocą mojego programu pakującego system naprawiono problem dla mnie.
Dominic LoBue,
5

Wiem, że to starsze pytanie, ale oto kroki, które musiałem wykonać, cassandra-driveraby faktycznie zainstalować na Windows 7 / Python2. Mam w domu system Windows 10 / Python3, w którym będę dziś testować. Potwierdziłem, że działa to również w systemie Windows 10 zarówno w języku Python 2, jak i 3.

Problem

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

Rozwiązanie TL; DR

Rozwiązanie (chciałbym, żeby ktoś wyjaśnił, dlaczego to zadziałało)

  • Próbowano pip install cassandra-driveruzyskać powyższy komunikat o błędzie
  • Próbowano pip install --pre cassandra-driveruzyskać następujący błąd
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
  • Zainstalowano Microsoft Visual C++ Compiler for Python 2.7
  • Pomyślnie wykonany pip install --pre cassandra-driver
  • Pomyślnie wykonany pip uninstall cassandra-driver
  • Pomyślnie wykonany pip install cassandra-driver

Powtarzając, nie jestem pewien, dlaczego to zadziałało. W tej chwili moje dwa główne wnioski są takie, że albo kompilator C ++ jest wymagany, albo że uruchomienie --preopcji po raz pierwszy zainstalowało pewne zależności, których brakowało w „zwykłej” instalacji. Będę aktualizować wieczorem po pracy, kiedy będę miał więcej szczegółów.

Frito
źródło
1

pip install -U setuptoolsi easy_installumieszczałem informacje o jajach w niewłaściwym katalogu.

Potem właśnie przeinstalowałem apt-get install python-dev. Pozwól mi zainstalować sterowniki, które chcę później

Shanwar
źródło
1

spróbuj wykonać następujące polecenie:

pip install setuptools==28.8.0
vp9031
źródło
0

Właśnie przekształcam odpowiedź liquidki w polecenia Ubuntu. W systemie opartym na Ubuntu działa !:

sudo apt -y install python-pip
pip install -U pip
sudo pip install -U setuptools
efkan
źródło
0

Dla mnie aktualizacja pip z 8.1.1 do 9.0.1 rozwiązała ten problem.

Możesz uruchomić coś takiego, sudo -H pip2 install --upgrade pipaby zaktualizować wersję PIP.

Qin Heyang
źródło
0

Spotykam również podobny komunikat o błędzie „Polecenie” python setup.py egg_info „nie powiodło się z kodem błędu 1”, gdy chcę zainstalować cairosvg z poleceniempip install cairosvg w środowisku wirtualnym.

Potem próbowałem obu pip install --upgrade pipi pip install --upgrade setuptoolsprzed uruchomieniem pip3 install cairosvg, ale nadal pojawia się ten błąd.

Mogę pozbyć się tego błędu z sudo przed poleceniem instalacji: sudo pip install cairosvg. Należy jednak pamiętać, że polecenie sudo spowoduje zainstalowanie pakietu dla pytona systemowego, a nie środowiska wirtualnego.

Więc dalej sprawdzam komunikat o błędzie i stwierdzam, że pojawia się błąd podczas instalowania cairocffi . Następnie instaluję pewną wersję cairocffi ( zapoznaj się z tą odpowiedzią ) przed instalacją cairosvg. W ten sposób rozwiązuję mój problem.

liushan CHEN
źródło