在 requirements.txt 中,波浪号等于 (~=) 是什么意思?

新手上路,请多包涵

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

 mock-django~=0.6.10

~= 是什么意思?

原文由 James Hiew 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.7k
2 个回答

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

或者,正如 PEP 440 所说:

对于给定的发布标识符 VN ,兼容的发布子句大约等同于一对比较子句:

>= V.N, == V.*

原文由 Maxime Lorant 发布,翻译遵循 CC BY-SA 4.0 许可协议

那是“兼容版本” 版本说明符

它等效于: mock-django >= 0.6.10, == 0.6.* ,并且是匹配预期兼容的版本的一种简洁方式。用简单的英语来说,这有点像在说:“我需要一个至少与 0.6.10 一样新的 mock-django 版本,但又不能新到与它不兼容的程度。”

如果你不确定所有这些版本号的东西,快速浏览一下 PEP440 版本方案 应该会让你明白!

原文由 user6669671 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏