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

11 浏览
0 Comments

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

我想做的是获取表示特定模块内导入的模块的模块对象列表,例如通过检查/反射。我可以获取全局导入列表,但这并不能告诉我哪个模块正在使用哪些其他模块。

明确一下,我说的是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,)

你会如何补充上述代码片段以实际列出导入的模块?

0
0 Comments

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

from modulefinder import ModuleFinder

finder = ModuleFinder()

finder.run_script('my_script.py')

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

print(name)

0