2011-12-28 2 views
2

Можно создать дубликат:
Dynamic module import in PythonДинамическая загрузка модуля в питона

У меня есть список модулей, например, так:

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

Каждый .py для модуля пребывает в подкаталоге, который я добавил к путям include. Я ищу способ загрузки модулей и создания списка ссылок на указанные загруженные модули.

ответ

2

Это должно ответить на ваш вопрос:

references = map(__import__, modules) 

или, если вы предпочитаете словарь с именами модулей в качестве ключей:

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

это ответ на ваш вопрос?

+1

Хорошее использование карты. –

1
import importlib 

imports = {} 

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

Остерегайтесь ImportError.

+0

Хорошее решение, но работает только с 3.1 (как [указано в документации] (http://docs.python.org/dev/library/importlib.html#module-importlib)). – Tadeck

Смежные вопросы