如何通过代码获取python模块的版本号?

Joe*_*moe 32 python

我正在尝试获取我使用的特定几个模块的版本号.我可以存储在变量中的东西.

sof*_*var 65

使用pkg_resources(setuptools的一部分).从PyPI安装的任何东西至少都有一个版本号.无需额外的包/模块.

>>> import pkg_resources
>>> pkg_resources.get_distribution("simplegist").version
'0.3.2'
Run Code Online (Sandbox Code Playgroud)

  • pkg_resources 导入非常慢,自 Python 3.8 以来推荐的方式是通过上面概述的 `importlib.metadata.version` (2认同)

Nic*_*k T 26

从马特的回答广义,做一个dir(YOURMODULE)和寻找__version__,VERSIONversion.大多数模块,__version__但我认为numpy使用version.version

  • 请注意,根据[PEP8](http://www.python.org/dev/peps/pep-0008/)的建议,`__version__`是新代码的首选标准.请参阅[将版本嵌入Python包的标准方法?](http://stackoverflow.com/questions/458550/standard-way-to-embed-version-into-python-package) (7认同)
  • `打印(YOURMODULE.__version__)` (2认同)

Xav*_*hot 15

开始Python 3.8importlib.metadata可以用来替代pkg_resources提取通过工具安装的第三方软件包的版本,例如pip

from importlib.metadata import version
version('wheel')
# '0.33.4'
Run Code Online (Sandbox Code Playgroud)


Mat*_*son 7

我认为这取决于模块.例如,Django有一个你可以得到的VERSION变量django.VERSION,sqlalchemy有一个__version__你可以得到的变量sqlalchemy.__version__.