在正确设置setuptools
和pbr
之后,有几种方法可以实现:
import pkg_resources
v1 = pkg_resources.require("my_package_name")[0].version
print('v1 {}'.format(v1))
v2 = pkg_resources.get_distribution('my_package_name').version
print('v2 {}'.format(v2))
from pbr.version import VersionInfo
v3 = VersionInfo('my_package_name').release_string()
print('v3 {}'.format(v3))
import importlib.metadata
__version__ = importlib.metadata.version('my_package_name')
如果您想从命令行获取它,可以执行以下操作:
py setup.py --version
如果软件包始终在本地安装,则甚至可以从脚本中运行setup.py脚本:
from subprocess import Popen, PIPE
(output, err) = Popen('py setup.py --version'.split(' '),
stdout=PIPE, stderr=PIPE, text=True).communicate()
if err: print('ERROR: "{}"'.format(err))
else: print('setup.py --version = {}'.format(output))
注意: 有关使用 subprocess 启动和读取 stdout 等的更多详细信息,尤其是在 Python 3.7 之前的旧版本中,请参见 this answer。
然后,您可以像这样将 __version__
添加到您的包 __init__.py
中:
__all__ = (
'__version__',
'my_package_name'
)
import pkg_resources
__version__ = pkg_resources.get_distribution("my_package_name").version
以下是一些其他有关设置和如何更新版本等信息的问答,特别是当从您的Git存储库获取信息时(从标签获取版本、作者和ChangeLog信息)可能会有所帮助: