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

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

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

Я не понимаю это сообщение (у меня есть setuptools 2.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 wheel support requires setuptools >= 0.8 for dist-info support.")
InstallationError: pip wheel support requires setuptools >= 0.8 for dist-info support.

Ответ 1

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

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

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

UPDATE

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

UPDATE

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

Ответ 2

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

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

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

easy_install -U setuptools

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

pip install --user <somepackage>

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