python - "InvalidRequirement: Invalid requirement, parse error"更新python包后出错

标签 python pip setuptools

使用 pip install -U ipython 更新包(在我的情况下为 IPython)后,运行任何使用入口 pip 的 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'"

没有其他变化,我没有更新任何其他库。

最佳答案

这是由 setuptools==20.2.1 中的问题引起的它由 IPython (setuptools>..) 引入,所以是 pip install -U更新了。

在发布固定版本或从 PyPI 中提取损坏的版本之前,有一个简单的解决方法(但请注意,如果更新设置工具,它将再次损坏):

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

pip需要更新,因为 pip 的旧版本没有 setuptools 将无法工作正在安装中


有关详细信息,请参阅这些 IRC 日志和 BitBucket 问题:

关于python - "InvalidRequirement: Invalid requirement, parse error"更新python包后出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35625488/

相关文章:

python - 确保至少安装了一个额外的 Python 包

python - Pymongo-值错误 : NaTType does not support utcoffset when using insert_many

python - Django Celery 任务队列

python - 在数据框中,如何将带有列表的列(所有行的长度相同)分解为同一行的不同列

path - Google Colab 上的 Fastai

Python 打包文档

python - 使用 pip install 安装 ssl 时遇到问题 : "SyntaxError: Missing parentheses in call to ' print'"

python - 在 centos 中安装 python 库的问题

Python setuptools 开发命令 : "No module named..."

python - 使用 numpy 进行奇怪的索引