如何列出导入的模块及其版本?

2024-03-19

我需要列出所有导入的模块及其版本。我的一些代码仅适用于特定版本,我想保存包的版本,以便将来再次查找。 列出包的名称有效:

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(使用前将#替换为@)

如何列出导入的模块及其版本? 的相关文章

随机推荐