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


Answers:


126

这意味着它将选择软件包的最新版本,大于或等于0.6.10,但仍为0.6。*版本,因此不会下载0.7.0。如果程序包维护者遵循语义版本控制(这表明重大更改应仅在主要版本中进行),则它可以确保获得安全修复程序,但保持向后兼容性。

或者,如PEP 440所述:

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

>= V.N, == V.*


3
“约”?这种等同是否有例外?
AXO

1
@AXO AFAIK,发布前/发布后版本匹配有一些微妙之处。在大多数情况下,这不会影响基本用法,无论如何,主要限于主要/次要版本匹配。
Maxime Lorant

14

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

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

如果您不确定所有这些版本号,请快速查看PEP440版本方案吧!


7

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


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.