web-dev-qa-db-ja.com

pythonパッケージを更新した後の「InvalidRequirement:無効な要件、解析エラー」エラー

pip install -U ipythonを使用してパッケージ(私の場合はIPython)を更新した後、Pythonエントリポイントを使用するスクリプトを実行すると、このエラーで失敗します。

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'"

他に変更はなく、他のライブラリを更新しませんでした。

21
ThiefMaster

これは、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の問題を参照してください。

23
ThiefMaster

Pipを8.1.1にダウングレードしてみてください:

pip install pip==8.1.1

それで解決しました。

11
juanpaolo