динамически импортировать подмодули в Python - PullRequest
2 голосов
/ 21 декабря 2011

Предположим, я предоставляю модуль в командной строке и хочу импортировать его с помощью модуля "imp":

$ foo.py mod.a.b.c

Как правильно это сделать?

Разделить "mod.a.b.c" и добавить каждый путь? Поведение «imp» не похоже на «import».

1 Ответ

5 голосов
/ 21 декабря 2011

Учитывая путь к модулю в виде строки (modulename), вы можете импортировать его с помощью

module = __import__(modulename,fromlist='.') 

Обратите внимание, что __import__('mod.a.b.c') возвращает пакет mod, а __import__('mod.a.b.c',fromlist='.') возвращает модуль mod.a.b.c.

...