2011-12-28 95 views
2

可能重复:
Dynamic module import in Python动态模块加载在python

我有模块的列表,像这样:

modules = ['ModuleA', 'ModuleB', 'ModuleC'] 

用于模块驻留在每个的.py在我已经添加到包含路径的子目录中。我正在寻找的是一种加载模块并构建对所述加载模块的引用列表的方式。

回答

2

这应该回答你的问题:

references = map(__import__, modules) 

或者如果你喜欢字典,模块的名称作为关键字:

references = dict(zip(modules, map(__import__, modules))) 

是否回答你的问题?

+1

很好用的地图。 – 2011-12-28 06:09:07

1
import importlib 

imports = {} 

for i in modules: 
    imports[i] = importlib.import_module(i) 

小心ImportError s。

+0

不错的解决方案,但仅适用于3.1(如[在文档中声明](http://docs.python.org/dev/library/importlib.html#module-importlib))。 – Tadeck 2011-12-28 05:32:19