如果使用 pbr,如何将包版本加载到 __version__ 变量中?

sor*_*rin 5 pip setuptools python-pbr

为了简化 python 打包,我试图迁移到使用 pbr。

尽管如此,我还是无法弄清楚如何将包的版本公开到__version__变量中。

这非常重要,因为我确实有很多用户依赖版本变量的存在。

人们应该能够做到:

import somemodule
print(somemodule.__version__)
Run Code Online (Sandbox Code Playgroud)

sor*_*rin 3

我不确定这是否是最好的方法,但我能够发现另一个正在执行类似操作的包:mock

__all__ = (
    '__version__',
    'version_info'
)

from pbr.version import VersionInfo

_v = VersionInfo('mock').semantic_version()
__version__ = _v.release_string()
version_info = _v.version_tuple()
Run Code Online (Sandbox Code Playgroud)