如何枚举所有导入的模块?
例如,我想['os', 'sys']从以下代码中获取:
['os', 'sys']
import os import sys
import sys sys.modules.keys()
仅获取当前模块的所有导入的一种近似方法是检查globals()模块:
import types def imports(): for name, val in globals().items(): if isinstance(val, types.ModuleType): yield val.__name__
这不会返回本地导入,也不会返回非模块导入,例如from x import y。请注意,这将返回,val.__name__因此如果你使用的话,将获得原始模块名称import module as alias;如果你想要别名,则使用yield名称。
from x import y
val.__name__
import module as alias
yield