如何访问distutils版本号?

4

我有一个使用distutils构建的Python包,我在setup函数中使用版本参数,如下所示(除了名称和版本之外还有其他参数):

setup(name='example_module', version='0.1.2', ...)

我可以通过调用以下代码从example_module包中的模块中提取版本号:

import pkg_resources
version = pkg_resources.require('example_module')[0].version

我该如何从一个不在此发行版之外的Python脚本中访问这个版本号?
2个回答

1
通常情况下,版本号是软件包源代码中的一个常量,setup.py 使用该值,然后导入软件包的任何人都可以读取版本字符串。

那么访问它可能是这样完成的:example_module.__version__?或者你是指访问常量的其他方式? - James

1

如果想在分发之外的另一个Python程序中使用is包的版本,最简单的方法是遵循PEP 396。http://www.python.org/dev/peps/pep-0396/

任何其他脚本都可以通过运行以下命令来访问Python包的版本:

python setup.py --version

并捕获输出。我在我的Makefiles中使用它来提取版本号,以便在生成我的软件包的在线文档时使用。

如果您的软件包包含任何命令行实用程序,请确保包括一个--version命令行选项。然后,任何脚本/程序都可以在安装后使用它来获取您的软件包版本。


+1 链接到 PEP396!我之前没有看过。不幸的是,运行 python setup.py --version 不是一个选项,因为我正在尝试从我的程序内提取版本号,而我不想运行一个完全独立的进程来捕获版本号。 - James
我不确定你所提到的“脚本”是指我所称的Python程序还是其他shell脚本。编辑了你的问题以使其更加清晰明了。 - Anthon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接