打印模块版本而不导入整个包

Print version of a module without importing the entire package

如果只导入一个模块,是否可以检查包的版本?

当像这样导入包时...

import pandas as pd

我使用:

print('pandas : version {}'.format(pd.__version__))

打印版本号。

如果只导入了一个模块,如何查看版本号,比如

import matplotlib.pyplot as plt

from sklearn.metrics import confusion_matrix

有什么建议吗?

我通常这样做:

import matplotlib.pyplot as plt
import sys

print (sys.modules[plt.__package__].__version__)

如果您只导入一个函数:

from sklearn.metrics import confusion_matrix as function
import sys

try:module_name = function.__module__[:function.__module__.index(".")]
except:module_name = function.__module__

print (sys.modules[module_name].__version__)

如果这不起作用,您可以只导入 pip 并 for 循环所有模块。