如果只导入了一个模块,是否可以检查包的版本?
当像这样导入包时...
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循环
所有模块。
import matplotlib; print(matplotlib.__version__)
在语义上是等效的,同时更易读。我看到这篇文章回答了如何在仅导入子包时推导出包版本。但标题中的问题表明可以以某种方式避免额外的开销,这并不是事实。(如果您怀疑我的推理,请比较dir(sys.module["matplotlib"])
和import matplotlib; dir(matplotlib)
,它们是相同的) - normanius