有没有办法获取由 python 脚本导入的仅本地模块(脚本)的列表?
我的意思是我有2个文件。扫描的和扫描仪。我需要确定扫描的一个使用哪些本地模块(可能使用模块图/模块查找器),但我自己找不到答案。
编辑:我实际上需要这样做而不在扫描仪中导入扫描的模块,所以就像文件扫描方式一样。
我已经通过过滤其他模块中的所有对象来检查它们是否属于模块类型。
这不是超级有效,但我认为不需要。
import foo # your module
import types
print dict((k, v) for (k, v) in foo.__dict__.iteritems() if type(v)==types.ModuleType)
由于 python 比 C/Java 更具动态性,因此如果您无法导入/运行扫描的模块,则会出现问题。考虑这种类型的代码:
re = __import__('re')
mymodule = __import__(raw_input()) # even worse for you
根据您对扫描模块的了解程度,进行文本搜索可能会也可能不会。