pip 要求说明符:逗号的作用

Posted

技术标签:

【中文标题】pip 要求说明符:逗号的作用【英文标题】:pip requirement specifiers: role of the comma 【发布时间】:2016-04-22 19:22:32 【问题描述】:

我正在尝试安装特定版本的 django-cms,从而执行pip install django-cms==3.0.5。这给了我错误No matching distribution found for django-mptt==0.5.2,==0.6,==0.6.1 (from django-cms==3.0.5)。事实上,在 github 上,setup.py 文件指定了要求 django-mptt==0.5.2,==0.6,==0.6.1

specification 表示逗号用作逻辑“与”运算符,但显然没有版本可以同时是 0.5.2、0.6 和 0.6.1,因此要求不匹配。只需通过pip install django-mptt==0.5.2 安装其中一个版本就可以正常工作,但关于 django-cms==3.0.5 仍然存在相同的错误。

有人能解释一下吗?

【问题讨论】:

【参考方案1】:

这是 django-cms 版本 3.0.5 中的一个错误。您可以在此处查看问题:https://github.com/divio/django-cms/issues/3704。

如果您需要继续使用 3.0 版本,可以尝试安装 3.0.16 版本。如果你真的需要 3.0.5 版本,你可以安装pip==1.5.6,django-cms 应该仍然可以正常安装。

编辑从 pip 版本 6.0 开始,单个包的多个 == 版本说明符不再起作用。一位开发者在 Github 上发表评论:

这是 PEP 440 的新预期行为。

setuptools 的旧行为令人困惑,并没有做大多数事情 人们期望它会这样做。 PEP 440 通过将 , 更改为 逻辑 AND 语句。

见https://github.com/pypa/pip/issues/2258。

【讨论】:

啊,谁能想到!谢谢! :)

以上是关于pip 要求说明符:逗号的作用的主要内容,如果未能解决你的问题,请参考以下文章

要求做个java程序用户输入数字逗号隔开, 计算下面的公式 多谢了

这个 numpy 赋值中尾随逗号的作用是啥?

Javascript 正则表达式逗号检测不起作用

Python 逗号的几种作用

JavaScript 表达式中的逗号有啥作用?

python中逗号在print的作用能不能用其他符号替代