如何在 Python3 中列出导入的模块和版本

How to list imported modules and version in Python3

我知道关于 SO 的几个问题似乎解决了这个问题(例如 , this)。但是,报告的解决方案似乎不适用于我的代码 (python 3.6.5)。在第一种情况下,打印的模块较少,在第二种情况下显示更多信息 (sys.modules.keys())。

有没有一种简单的方法可以像 R 中的 sessionInfo() 一样显示所有导入的顶级模块和版本(通过 __version__)?

这对我有用:

import sys
for module in sys.modules:
    try:
        print(module,sys.modules[module].__version__)
    except:
        try:
            if  type(modules[module].version) is str:
                print(module,sys.modules[module].version)
            else:
                print(module,sys.modules[module].version())
        except:
            try:
                print(module,sys.modules[module].VERSION)
            except:
                pass