Python 的pip
并easy_install
遵循一些规则来按包的发布号对包进行排序。为 beta/release/bugfix 版本编号的规则是什么,以便这些工具知道哪个是最新的?
3 回答
这是很多人的痛点。setuptools
并easy_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。
请参阅文档或查看源代码:pkg_resources.py 函数 parse_version() 中的文档字符串。
在 1.0 之前使用 1.0a1 和 1.0b2。
即将推出的标准:
- http://www.python.org/dev/peps/pep-0386/#the-new-versioning-algorithm
- http://tarekziade.wordpress.com/2009/11/18/distutils-and-distribute-status-part-1/
- http://bitbucket.org/tarek/distutilsversion/
当前设置工具:http: //peak.telecommunity.com/DevCenter/setuptools#specifying-your-project-s-version