在我正在使用的Python库的requirements.txt
中,其中一个要求被指定为:
mock-django~=0.6.10
~=
是什么意思?
答案 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 中提到。