在我正在使用的Python库的requirements.txt中,其中一个需求是这样指定的:
mock-django~=0.6.10
~=是什么意思?
在我正在使用的Python库的requirements.txt中,其中一个需求是这样指定的:
mock-django~=0.6.10
~=是什么意思?
当前回答
兼容的发布子句由兼容的发布操作符~=和版本标识符组成。它匹配预期与指定版本兼容的任何候选版本。
你可以在这里阅读更多:https://www.python.org/dev/peps/pep-0440/#compatible-release
其他回答
这意味着它将选择包的最新版本,大于或等于0.6.10,但仍在0.6。*版本,所以它不会下载0.7.0,例如。如果包维护者尊重语义版本控制(即只在主要版本中发生破坏性更改),它可以确保您获得安全修复,但保持向后兼容性。
或者,正如PEP 440所言:
对于给定的发布标识符V.N,兼容的发布子句大约等价于一对比较子句: >= v. n, == v. *
PEP 440中的定义 文档中有完整的示例
兼容的发布子句由兼容的发布操作符~=和版本标识符组成。它匹配预期与指定版本兼容的任何候选版本。
你可以在这里阅读更多:https://www.python.org/dev/peps/pep-0440/#compatible-release
除了现有的答案,我认为还有一点非常重要,那就是
~=0.6.10表示>=0.6.10,==0.6
以下也是正确的
~=0.6表示>=0.6,==0
PEP文档中提到了这一点。
这是“兼容发布”版本说明符。
它相当于:mock-django >= 0.6.10, == 0.6。*,是一种匹配期望兼容的版本的简洁方式。说白了,这有点像在说:“我需要一个mock-django的版本,它至少要像0.6.10一样新,但又不能新到与它不兼容。”
如果你不确定所有这些版本号的东西,快速看一下PEP440版本方案应该会让你理清头绪!
~=表示兼容版本。不低于0.6.10或更高(0.6.*)。