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

时间:2016-01-17 16:52:45

标签: python django python-2.7 pip django-cms

我正在尝试安装特定版本的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 个答案:

答案 0 :(得分:5)

这是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仍应正确安装。

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

  

这是PEP 440的新预期行为。

     

setuptools的旧行为令人困惑,并没有做到最多   人们期望它能做到。 PEP 440通过将a更改为a来简化它   逻辑AND声明。

请参阅https://github.com/pypa/pip/issues/2258