Python发行版/版本号的标准排序顺序是什么?

joe*_*ker 3 python pip easy-install

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

Joh*_*lla 8

对许多人来说,这是一个痛点.试图与每个人玩得很好,setuptoolseasy_install有一些相当奇怪的规则.你可以阅读完整的规则setuptoolsparse_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.

  • 按字母顺序排在"最终"之前的字符串假定为预发布版本,因此2.4.5b之前,而不是之后,2.4.5.

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

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

  • PEP 386 现已被接受并在打包 (Python 3.3 stdlib) 和 distutils2(2.4-3.2 的独立版本)中实现。 (2认同)