3

Python 的pipeasy_install遵循一些规则来按包的发布号对包进行排序。为 beta/release/bugfix 版本编号的规则是什么,以便这些工具知道哪个是最新的?

4

3 回答 3

8

这是很多人的痛点。setuptoolseasy_install制定了一些相当奇怪的规则,试图与每个人都相处融洽。您可以阅读setuptools'sparse_version方法中的完整规则,但这里是摘要:

  • 版本号由点分解成这么多段的元组。4.5.6.7 被解析成一个等于 的元组("4", "5", "6", "7")

  • 破折号或字母数字之间的尾随零被抑制。2.4.0 与 2.4 相同;2.4.05 与 2.4.5 相同。

  • 字母数字部分被小写。2.4.a5 等于 2.4.A5。

  • 按字母顺序出现在“final”之前的字符串被假定为预发布版本,因此 2.4.5b 出现在 2.4.5 之前,而不是之后。

  • 最后,“pre”、“preview”和“rc”被视为“c”。“dev”一词被替换为“@”,因此它出现在具有相同版本的任何其他内容之前。也就是说,x.y.z-dev保证在任何其他x.y.z版本之前出现。

有许多建议可以组织更多内容,其中最受欢迎的可能是PEP 386

于 2009-12-14T15:49:29.593 回答
2

请参阅文档或查看源代码:pkg_resources.py 函数 parse_version() 中的文档字符串。

于 2009-12-14T15:47:46.350 回答