如何列出Python模块中的导入?

时间:2015-07-01 15:27:19

标签: python python-2.7

我要做的是获取一个代表特定模块中导入的模块对象列表,例如:通过检查/反思。我可以获得全球导入列表,但这并不能告诉我哪个模块正在使用哪些模块。

要说清楚,我在讨论 Python中的模块,而不是PIP安装的软件包。我完全在Python 2.7中寻找代码来获取模块引用(比如说sys.modules['foo'])并将该模块的导入list作为名称,路径或其他模块返回宾语。 (我现在真正想要的只是路径。)

import sys
for module_name in sys.modules:
   print "Modules imported by %s are: ..." % (module_name,)

您如何完成上述代码段以实际列出导入?

1 个答案:

答案 0 :(得分:1)

您可以使用标准库中的modulefinder包。

from modulefinder import ModuleFinder

finder = ModuleFinder()
finder.run_script('my_script.py')

for name, mod in finder.modules.iteritems():
    print(name)