Python pip需求说明符:逗号的作用

Python pip需求说明符:逗号的作用,python,django,python-2.7,pip,django-cms,Python,Django,Python 2.7,Pip,Django Cms,我正在尝试安装django cms的特定版本,因此执行pip install django cms==3.0.5。这给了我一个错误没有找到django mptt==0.5.2,==0.6,==0.6.1的匹配分布(来自django cms==3.0.5)。事实上,在github上,setup.py文件指定了需求django mptt==0.5.2、==0.6、==0.6.1 表示逗号用作逻辑“and”运算符,但显然没有任何版本可以同时为0.5.2、0.6和0.6.1,因此要求不匹配。只需通过pi

我正在尝试安装django cms的特定版本,因此执行
pip install django cms==3.0.5
。这给了我一个错误
没有找到django mptt==0.5.2,==0.6,==0.6.1的匹配分布(来自django cms==3.0.5)
。事实上,在github上,
setup.py
文件指定了需求
django mptt==0.5.2、==0.6、==0.6.1

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


有人能解释一下吗?

这是django cms 3.0.5版中的一个bug。您可以在此处看到问题:

如果需要继续使用3.0版本,可以尝试安装3.0.16版。如果您确实需要3.0.5版,可以安装
pip==1.5.6
,django cms仍应正确安装

编辑从pip版本6.0开始,单个包的多个
=
版本说明符不再工作。其中一位开发人员对Github发表了评论:

这是PEP 440的新预期行为

setuptools的旧行为令人困惑,并且没有做最重要的事情 人们期望它能做到。PEP 440通过将 逻辑AND语句


瞧。

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