【问题标题】:Requirements.txt greater than equal to and then less than?requirements.txt 大于等于然后小于?
【发布时间】:2018-11-23 07:49:02
【问题描述】:

我的需求文件中有这一行

django>=1.10,<1.11

这是否意味着我需要 Django 版本 &gt;= 1.10 然后低于 1.11

【问题讨论】:

    标签: python django requirements.txt


    【解决方案1】:

    是的pip manual [doc] 有一个关于“需求说明符”格式的部分。这些记录在PEP-508 [pep]PEP-440 [pep]

    比较运算符确定版本子句的种类:

    1. ~=:兼容的释放条款
    2. ==:版本匹配子句
    3. !=:版本排除条款
    4. &lt;=&gt;=:包含有序比较子句
    5. &lt;&gt;:排他性排序比较子句
    6. ===:任意相等子句。

    逗号 (",") 等效于逻辑与 运算符:候选版本必须匹配所有给定的版本子句,才能匹配整个说明符.

    因此,在您的情况下,这意味着 Django 版本是 1.10 或更高版本,而不是 1.11 或更高版本(所以1.10 很好,1.10.1 也可以,但不是1.111.11.1 , 或2.0.1)。

    【讨论】:

    • 有没有办法说“除了这个范围之外的任何版本”?换句话说,我怎么说setuptools version &lt;45.0.0 or &gt;=49.9.1>
    • @JonathonReinhart:据我所知不是,特别是因为没有析取(逻辑或)。你可以用!= 45.*, != 46.*, !=47.*, !=48.*, !=49.1.*, !=49.1.*, !=49.2.*, !=49.3.*, !=49.4.*, !=49.5.*, !=49.6.*, !=49.7.*, !=49.8.*, !=49.9.0.*
    • 我得出了同样不幸的结论。幸运的是,我打错了,范围是49.1.1(不是49.9.1)。所以我用了这个:setuptools !=45.*, !=46.*, !=47.*, !=48.*, !=49.1.0。谢谢!
    猜你喜欢
    • 2011-01-25
    • 1970-01-01
    • 2015-08-20
    • 2019-07-07
    • 2012-09-11
    • 1970-01-01
    • 2013-09-02
    • 1970-01-01
    • 2018-08-05
    相关资源
    最近更新 更多