美文网首页
Python项目版本号管理

Python项目版本号管理

作者: Wavky | 来源:发表于2017-09-16 10:35 被阅读0次

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

  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

相关文章

网友评论

      本文标题:Python项目版本号管理

      本文链接:https://www.haomeiwen.com/subject/rueysxtx.html