在requirements.txt中,代字号等于(〜=)是什么意思?

时间:2016-09-20 09:18:05

标签: python requirements.txt

在我正在使用的Python库的requirements.txt中,其中一个要求被指定为:

mock-django~=0.6.10

~=是什么意思?

5 个答案:

答案 0 :(得分:39)

这意味着它将选择最新版本的软件包,大于或等于0.6.10,但仍然是0.6。*版本,因此它不会下载0.7.0例如。它确保您将获得安全修复程序但保持向后兼容性,如果程序包维护者尊重语义版本控制(其中指出仅在主要版本中发生更改)。

或者,正如PEP 440所说:

  

对于给定的版本标识符V.N,兼容版本子句大致相当于一对比较子句:

     

ID

答案 1 :(得分:7)

这是'兼容版本' version specifier

它相当于:mock-django >= 0.6.10, == 0.6.*,是一种匹配预期兼容的版本的整洁方式。用简单的英语,它有点像说:"我需要一个至少与0.6.10一样新的mock-django版本,但不是那么新,以至于它与它不相容"

如果您不确定所有这些版本号的内容,请快速查看PEP440 version scheme应该排除您的声音!

答案 2 :(得分:4)

〜=表示兼容版本。不低于0.6.10和更高(0.6。*)。

答案 3 :(得分:3)

  

兼容版本子句由兼容版本运算符〜=和版本标识符组成。它匹配任何预期与指定版本兼容的候选版本。

您可以在此处阅读更多内容:https://www.python.org/dev/peps/pep-0440/#compatible-release

答案 4 :(得分:2)

添加到现有答案中,我认为同时提及这一点非常重要

<块引用>

~=0.6.10 表示 >=0.6.10, ==0.6.*

以下也是正确的

<块引用>

~=0.6 表示 >=0.6, ==0.*

它在 PEP documentation 中提到。