Последний 'pip' не работает с "требует setuptools> = 0.8 для dist-info"

81

Используя последнюю (1.5) версию pip, я получаю сообщение об ошибке при попытке обновить несколько пакетов. Например, sudo pip install -U pytzприводит к отказу:

Wheel installs require setuptools >= 0.8 for dist-info support.
pip's wheel support requires setuptools >= 0.8 for dist-info support.

Я не понимаю это сообщение (у меня setuptools2.1) или что с ним делать.


Информация об исключении из журнала для этой ошибки:

Exception information:
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/Library/Python/2.7/site-packages/pip/commands/install.py", line 230, in run
    finder = self._build_package_finder(options, index_urls, session)
  File "/Library/Python/2.7/site-packages/pip/commands/install.py", line 185, in _build_package_finder
    session=session,
  File "/Library/Python/2.7/site-packages/pip/index.py", line 50, in __init__
    self.use_wheel = use_wheel
  File "/Library/Python/2.7/site-packages/pip/index.py", line 89, in use_wheel
    raise InstallationError("pip's wheel support requires setuptools >= 0.8 for dist-info support.")
InstallationError: pip's wheel support requires setuptools >= 0.8 for dist-info support.
Orome
источник

Ответы:

148

Это сработало для меня:

sudo pip install setuptools --no-use-wheel --upgrade

Обратите внимание на использование sudo

ОБНОВИТЬ

В окне вам просто нужно выполнить pip install setuptools --no-use-wheel --upgradeкак администратор. В unix / linux sudoкоманда предназначена для повышения разрешений.

ОБНОВИТЬ

Похоже, это было исправлено в 1.5.1.

Роландф
источник
Извините, это, похоже, не полностью решило мою проблему, но все еще работаю над этим.
Rolandf 03
На данный момент мне пришлось вернуться к использованию pip 1.4, позже поищу исправление.
Rolandf 03
Работал у меня. Понятия не имею, почему это произошло.
amoe 03
4
Обратите внимание, что добавленная --no-use-wheelопция просто пропускает использование «колесных архивов» , но в остальном выполняет ту же установку, что и команда, которая ее пропускает.
orome 05
1
У меня работал на Centos 6. Поговорим об абстрактном сообщении об ошибке.
fred
11

Во-первых, никогда не запускайте sudo pip.

Если возможно, вам следует использовать системный менеджер пакетов, потому что он использует подписи GPG, чтобы гарантировать, что вы не используете вредоносный код.

В противном случае попробуйте обновить инструменты настройки:

easy_install -U setuptools

Или попробуйте:

pip install --user <somepackage>

Это, конечно, для «глобальных» пакетов. В идеале вы должны использовать virtualenvs.

user1503941
источник
6
Как правило, запускать команду pip как sudo - неправильно. Однако иногда вам все же нужно установить что-то в системный Python (например, virtualenv или сам pip), и тогда подходит sudo.
Люк Снирингер
1
@LukeSneeringer: Почему это «неправильно». Не думаю, что у меня действительно есть выбор без серьезной реконфигурации.
orome
1
easy_install -U setuptoolsгорные породы!
madzohan