我需要列出所有导入的模块及其版本。我的一些代码仅适用于特定版本,我想保存包的版本,以便将来再次查找。
列出包的名称有效:
modules = list(set(sys.modules) & set(globals()))
print modules
但如果我现在想获取列表项的版本,它不起作用:
for module in modules:
print module.__version__
有没有办法解决.__version__
带有字符串的命令,或者我是否需要采用另一种方式来获取名称和版本?
在其他问题中,仅涉及模块的名称:如何列出导入的模块? https://stackoverflow.com/questions/4858100/how-to-list-imported-modules
因为您有模块名称的字符串列表,而不是模块本身。尝试这个:
for module_name in modules:
module = sys.modules[module_name]
print module_name, getattr(module, '__version__', 'unknown')
请注意,并非所有模块都遵循将版本信息存储在__version__
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)