Подтвердить что ты не робот

Ошибка "InvalidRequirement: ошибка, ошибка синтаксического анализа" после обновления пакета python

После обновления пакета (IPython в моем случае) с помощью pip install -U ipython выполняется любой Python script, который использует точки входа с ошибкой:

Traceback (most recent call last):
  File "/home/adrian/dev/indico/env/bin/indico", line 5, in <module>
    from pkg_resources import load_entry_point
  ...
  File "/home/adrian/dev/indico/env/lib/python2.7/site-packages/pkg_resources/_vendor/packaging/requirements.py", line 94, in __init__
    requirement_string[e.loc:e.loc + 8], requirement_string))
pkg_resources._vendor.packaging.requirements.InvalidRequirement: Invalid requirement, parse error at "'< 2.0'"

Ничего другого не изменилось, я не обновлял другие библиотеки.

4b9b3361

Ответ 1

Это вызвано проблемой в setuptools==20.2.1, которая втягивается в IPython (setuptools>..), поэтому pip install -U обновил ее.

До тех пор, пока не будет выпущена фиксированная версия или не будет вырвана сломанная версия из PyPI, есть простой способ обхода (но обратите внимание, что он снова сломается, если что-то обновит setuptools):

  • pip install -U pip
  • pip uninstall setuptools
  • pip install 'setuptools<20.2'

Обновление pip необходимо, так как более старые версии pip не будут работать без установки setuptools


Подробнее см. в этих журналах IRC и BitBucket:

Ответ 2

Попробуйте перевести ваш пипс на 8.1.1:

pip install pip==8.1.1

Это решило это для меня.