Python项目版本号管理

官方指导中给出了几种维护项目单源版本号的方法,摘取较好的几种简述一下:

  1. 在独立模块中设置__version__变量,在setup.py中通过execfile读取文件
execfile('...sample/version.py')  # 现在可用__version__变量
  1. __init__.py中设置__version__变量,并通过import模块所在包导入至setup.py,引用该变量
    但不要在__init__.py中导入其他第三方包,否则很可能会运行失败

  2. 使用bumpversion / changes / zest.releaser等管理版本号,并自动追加commit / tag至vcs

  1. 使用setuptools_scm自动从vcs(git)中读取最后tag版本号,自动追加版本后设置到setup.py
# 在根目录脚本中获取版本号
version = setuptools_scm.get_version(local_scheme=lambda ver: '')

# 在子目录脚本中获取版本号
version = setuptools_scm.get_version(root='..', relative_to=__file__)

# 获取不含Local version identifiers的纯净版本号
version = setuptools_scm.get_version(local_scheme=lambda ver: '')

setuptools_scm的版本输出规范:

{next_version}.dev{distance}+{scm letter}{revision hash}.dYYYYMMDD
1.0.1b2.dev0+g2ae5364.d20170916
scm letter:g表示当前项目vcs为git
revision hash:2ae5364为当前分支的hash code
dYYYYMMDD:现在的日期

PEP440版本命名规范
PyPIに登録するパッケージバージョンをGitから取得する

  1. 获取特定程序的版本号(这项出现在这里感觉哪里不对..)
import pkg_resources
assert pkg_resources.get_distribution('pip').version
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容