如何枚举所有导入的模块?
例如,我想['os', 'sys']从以下代码中获取:
['os', 'sys']
import os import sys
import sys sys.modules.keys()
仅获取当前模块的所有导入的一种近似方法是检查globals()模块:
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