def import_submodules(package, recursive=True):
"""Import all submodules of a module, recursively, including subpackages
Arguments:
* `package` -- package (name or actual module)
Keyword arguments:
* `recursive` -- import modules recursively
"""
if package is None:
return {}
if isinstance(package, str):
package = importlib.import_module(package)
importlib.reload(package)
results = {}
for loader, name, is_pkg in pkgutil.walk_packages(package.__path__):
full_name = package.__name__ + '.' + name
results[full_name] = importlib.import_module(full_name)
importlib.reload(results[full_name])
if recursive and is_pkg:
results.update(import_submodules(full_name))
return results
评论列表
文章目录