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

How do I get a python module's version number through code?

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


使用pkg_资源(安装工具的一部分)。从pypi安装的任何东西都至少有一个版本号。不需要额外的包/模块。

1
2
3
>>> import pkg_resources
>>> pkg_resources.get_distribution("simplegist").version
'0.3.2'

从Matt的广义回答中,做一个dir(YOURMODULE)并寻找__version__VERSIONVERSION。大多数模块像__version__,但我认为numpy使用version.version


我想这取决于模块。例如,django有一个版本变量,可以从django.VERSION中获得,sqlacalchemy有一个__version__变量,可以从sqlalchemy.__version__中获得。


某些模块(如Azure)不提供__version__字符串。

如果包是与PIP一起安装的,那么下面的内容应该可以工作。

1
2
3
4
5
# say we want to look for the version of the"azure" module
import pip
for m in pip.get_installed_distributions():
    if m.project_name == 'azure':
        print(m.version)