美文网首页
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