我正在构建一个 Python 库,并且我在其中一个模块中需要获取该库的当前版本并根据当前版本做出决策。 这在Python中可能吗?您认为最好的方法是什么?
您应该使用
dir(package)
查看该包的所有可能选项。如果有__version__
,就可以使用它。
我发现我的库的版本在每次发布时都会从 Github 上被
setuptools_scm
拉取。 setuptools_scm
的开发者提供了一些在运行时检索包版本的技巧:
https://github.com/pypa/setuptools_scm#retriving-package-version-at-runtime
看起来使用
importlib.metadata
是正确的选择。
虽然尝试使用库的
__version__
属性可能看起来是个好主意,但它并不总是有效,因为并非每个库都有它。
尝试这样使用
importlib.metadata
:
from importlib.metadata import PackageNotFoundError, version
try:
ver = version("your_lib")
except PackageNotFoundError:
ver = "unknown"