代码之家  ›  专栏  ›  技术社区  ›  Michel H.

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

  •  9
  • Michel H.  · 技术社区  · 10 年前

    我正在尝试安装特定版本的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 表示逗号用作逻辑“and”运算符,但显然没有版本可以同时为0.5.2、0.6和0.6.1,因此要求不匹配。只需通过安装其中一个版本 pip install django-mptt==0.5.2 工作时没有问题,但关于django cms==3.0.5仍然存在相同的错误。

    有人能解释一下吗?

    1 回复  |  直到 10 年前
        1
  •  5
  •   Derek Kwok    10 年前

    这是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 .

    推荐文章