Сбой установки Python: неверная команда egg_info


205

Я обнаружил, что в последнее время часто, когда я пытаюсь установить пакет Python с помощью pip , я получаю сообщение об ошибке ниже.

В интернете я нашел ссылку на то, что нужно использовать « python2 setup.py install » из каталога загрузки, и действительно обнаружил, что это сработает, если я вручную найду и скачу пакет (из pypi).

Но я не знаю, куда pip загружает пакеты и / или почему он не работает таким образом.

Я попытался выполнить обновление pip, но оно также не удалось аналогичным образом, с кучей ошибок «Неизвестный параметр распространения» (entry_points, zip_safe, test_suite, tests_require)!

Попытка использовать pypm ActiveState не удалась, потому что они имеют меньшую библиотечную базу и не включают эти пакеты.

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'

Для меня это сработало при установкеpython-dev
lmaooooo

Ответы:


313

Установите дистрибутив , который идет с egg_info.

Должно быть так же просто, как pip install Distribute.

Распространение было объединено с Setuptools начиная с версии 0.7. Если вы используете версию <= 0.6, обновите с помощью pip install --upgrade setuptoolsили easy_install -U setuptools.


79
не работает для меня Я установил дистрибутив, но по-прежнему получаю сообщение об ошибке яйца почти каждый раз, когда пытаюсь установить пакет
Riot Goes Woof

2
Тем, кому нравится @Zorpix, которые все еще получают ошибки, вы можете проверить, какую версию пипа вы называете. В Ubuntu я обнаружил, что у меня есть дистрибутивная версия, которая все еще вызывается.
Джеймс Снайдер

1
Чтобы новая версия setuptools работала, вам также может потребоваться удалить дистрибутив вручную или путем удаления/usr/local/lib/python2.7/dist-packages/distribute-*
Michael

12
Если после удаления дистрибутива у вас все еще есть проблемы или pip не обновляет setuptools должным образом, попробуйте easy_install -U setuptoolsЭто сработало для меня.
kissgyorgy

5
Как ни странно, это исправило ошибку для всех установок, кроме pip install -U pip .
Cerin

58

Поскольку дистрибутив был объединен с setuptools, теперь рекомендуется вместо этого установить / обновить setuptools:

[sudo] pip install --upgrade setuptools

7
По какой-то причине мне пришлось выполнить это дважды (в моем виртуальном окружении у меня был дистрибутив 0.6.49 и setuptools 0.6c11), а затем я мог без проблем установить последнюю версию pip.
гларрейн

3
@glarrain это случилось со мной! спасибо за головы! при первом удаляемом пасе раздают 0,7, а во втором неустановленном setuptools 0.6c11
авиаудар

22

Имейте в виду, что вам, возможно, придется это сделать, pip install --upgrade Distributeесли он уже установлен и в некоторых системах вам pipможет потребоваться pip2Python2 (он у меня).


1
Как примечание, это должно быть сделано в режиме администратора в Windows для типичной установки Python. В противном случае легко пропустить ошибку установки для распространения.
Стивен Блюен

13

У меня была эта проблема, а также некоторые другие проблемы с Brewed Python на OS X v10.9 (Mavericks).

sudo pip install --upgrade setuptools

у меня не сработало, и я думаю, что мои setuptools / распространяют настройки не удалось.

Я наконец получил его на работу, запустив

sudo easy_install -U setuptools

11

Ничто из вышеперечисленного не работало для меня на Ubuntu 12.04 LTS (Precise Pangolin), и вот как я это исправил в конце:

Загрузите файл ez_setup.py с сайта setuptools (см. Раздел «Инструкции по установке»), а затем:

$ sudo python ez_setup.py

Надеюсь, это сэкономит кому-то время.



8

На CentOS 6.5 краткий ответ от чистой установки:

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

Вы не видите двойной, вы должны запустить обновление setuptools дважды. Длинный ответ ниже:

Установка python-pipпакета с использованием yum приводит python-setuptoolsк зависимости. Это довольно старая версия и, следовательно, она фактически устанавливается distribute (0.6.10). После установки менеджера пакетов мы обычно хотим обновить его, что мы и делаем pip install -U pip. Текущая версия pip для меня - 1.5.6.

Теперь мы переходим к обновлению setuptools, и эта версия pip достаточно умна, чтобы знать, что сначала она должна удалить старую версию дистрибутива. Он делает это, но затем вместо установки последней версии setuptools устанавливает setuptools (0.6c11).

На данный момент все виды вещей ломаются из-за этой чрезвычайно старой версии setuptools, но мы на самом деле на полпути. Если мы теперь выполним ту же самую команду во второй раз, pip install -U setuptoolsстарая версия setuptools будет удалена, и будет установлена ​​версия 5.5.1. Я не знаю, почему Пип не приводит нас прямо к новой версии за один раз, но это то, что происходит, и, надеюсь, это поможет другим увидеть это и понять, что вы не сходите с ума.


6

Похоже, что по умолчанию easy_install не работает в своем текущем местоположении:

$ which easy_install /usr/bin/easy_install

Чтобы преодолеть это, используйте easy_install в пакетах сайта. Например:

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


6

Я столкнулся с той же самой проблемой, и я попробовал все вышеупомянутые ответы. Но, к сожалению, ничего из вышеперечисленного не сработало.

Как примечание, я наконец решаю это pip uninstall distribute.


3
Это исправило проблему для меня. Выяснилось, что у меня установлена ​​старая версия дистрибутива, и установлена ​​еще более старая версия setuptools, и я предпочел ее более новым версиям, установленным моим системным упаковщиком ... Удаление как setuptools, так и дистрибутива, а затем переустановка setuptools с помощью моего системного упаковщика исправил проблему для меня.
Доминик Лобуэ

5

Я знаю, что это старый вопрос, но вот шаги, которые я использовал, cassandra-driverчтобы фактически установить на Windows 7 / Python2. У меня дома Windows 10 / Python3, где я опробую это сегодня вечером. Я подтвердил, что это также работает в Windows 10 с Python 2 и 3.

проблема

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 Solution

Решение (я бы хотел, чтобы кто-то объяснил, почему это сработало)

  • Попытка pip install cassandra-driverи сообщение об ошибке выше
  • Попытался pip install --pre cassandra-driverи получил следующую ошибку
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
  • Установлены Microsoft Visual C++ Compiler for Python 2.7
  • Успешно выполнено pip install --pre cassandra-driver
  • Успешно выполнено pip uninstall cassandra-driver
  • Успешно выполнено pip install cassandra-driver

Повторюсь, я не совсем уверен, почему это сработало. Прямо сейчас мои два основных вывода заключаются в том, что либо требуется компилятор C ++, либо что при запуске --preопции в первый раз устанавливаются некоторые зависимости, которые отсутствовали при «обычной» установке. Я обновлюсь сегодня вечером после работы, когда у меня будет больше деталей.


1

pip install -U setuptoolsи easy_installпомещал информацию о яйцах в неправильный каталог.

Тогда я просто переустанавливал apt-get install python-dev. Позвольте мне установить драйверы, которые я хочу после этого



0

Я просто конвертирую ответ liquidki в команды Ubuntu. В системе на основе Ubuntu это работает !:

sudo apt -y install python-pip
pip install -U pip
sudo pip install -U setuptools

0

Для меня обновление pip с 8.1.1 до 9.0.1 решило эту проблему.

Вы можете запустить что-то вроде sudo -H pip2 install --upgrade pipобновления вашей версии в pip.


0

Я также встречаю похожее сообщение об ошибке «Команда« python setup.py egg_info »с кодом ошибки 1», когда я хочу установить cairosvg с командой pip install cairosvgв виртуальной среде.

Затем я попробовал оба pip install --upgrade pipи pip install --upgrade setuptoolsдо запуска pip3 install cairosvg, но я все еще получаю эту ошибку.

Я могу избавиться от этой ошибки с Sudo перед командой установки: sudo pip install cairosvg. Но обратите внимание, что команда с sudo установит пакет для системного python, а не для виртуальной среды.

Итак, я дополнительно проверяю сообщение об ошибке и обнаруживаю, что получаю ошибку при установке cairocffi . Затем я устанавливаю определенную версию cairocffi ( см. Этот ответ ) перед установкой cairosvg. Вот так я решаю свою проблему.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.