我想列出一个导入模块的名称和文件列表,例如:
#!/usr/bin/python3
import importlib
module = importlib.import_module('someModule')
for mod in module.modules():
print(mod.name)
print(mod.file)
答案 0 :(得分:1)
Python3让我们使用exec(f'import {module_name}')
引入模块,将结果放入globals()[module_name]
,
或者我们可以分配mod = importlib.import_module(module_name)
。
要查看由此直接引入了哪些 other 个模块,请使用:
def is_module(x):
return str(type(x)) == "<class 'module'>"
def show_deps(mod):
for name in dir(mod):
val = getattr(mod, name)
if is_module(val):
print(name, val.__file__)
如果需要,可以递归遍历树以找到可传递的deps。