我想获取我使用的特定几个模块的版本号,需要将其存储在一个变量中。
我想获取我使用的特定几个模块的版本号,需要将其存储在一个变量中。
使用 pkg_resources(setuptools的一部分)。从PyPI安装的任何东西至少都有一个版本号。不需要额外的包/模块。
>>> import pkg_resources
>>> pkg_resources.get_distribution("simplegist").version
'0.3.2'
importlib.metadata.version
导入。 - rth从Python 3.8开始,importlib.metadata
可以用作替代pkg_resources
的工具来提取通过pip
等工具安装的第三方包的版本号:
from importlib.metadata import version
version('wheel')
# '0.33.4'
from importlib_metadata import version
- 所以是下划线而不是点。 - OnceUponATime从Matt的回答来看,执行dir(YOURMODULE)
,查找__version__
、VERSION
或version
。 大多数模块使用__version__
,但我认为numpy
使用version.version
。
print(YOURMODULE.__version__)
- Gabriel Fair__version__
的包有效,是吗? - Dr_Zaszuś我认为这取决于模块。例如,Django有一个可以从django.VERSION
获取的VERSION变量,sqlalchemy有一个可以从sqlalchemy.__version__
获取的__version__
变量。
django.get_version()
,它返回一个字符串而不是元组。当有疑问时,可以使用dir(module)
。 - Seth__version__
字符串。# 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)
AttributeError: module 'pip' has no attribute 'get_installed_distributions'
错误。在 Jupyter 5.0.0 和 VS Code 1.30.2 中都出现了相同的结果,使用的 pip 版本为 18.1。有什么建议吗? - Karl Baker import sys
import matplotlib as plt
import pandas as pd
import sklearn as skl
import seaborn as sns
print(sys.version)
print(plt.__version__)
print(pd.__version__)
print(skl.__version__)
print(sns.__version__)
3.7.1rc1(v3.7.1rc1:2064bcf6ce,2018年9月26日,14:21:39)[MSC v.1914 32位(Intel)] 3.1.0 0.24.2 0.21.2 0.9.0 (sys 显示安装的 Python 版本号)