все Python 3importlibфункция
importlib.import_module()
импорт по имени
Импортирует модуль по имени, заданному строкой, и возвращает объект модуля — например, плагин, имя которого пришло из настроек.
Синтаксис
module = importlib.import_module(name, package=None)
В отличие от __import__('a.b'), который возвращает пакет верхнего уровня a, import_module('a.b') возвращает именно a.b. Функция не создаёт переменную — результат нужно присвоить. Относительное имя '.sub' требует package=, иначе TypeError. Модуль исполняется один раз: повторный вызов берёт его из sys.modules, а не перечитывает файл.
Примеры
import importlib
m = importlib.import_module('json.decoder')
print(m.__name__) # → json.decoder
print(__import__('json.decoder').__name__) # → json
print(importlib.import_module('.decoder', package='json') is m) # → True
import importlib
try:
importlib.import_module('.decoder')
except TypeError as e:
print('TypeError') # → TypeError — нужен package=
try:
importlib.import_module('no_such_module')
except ModuleNotFoundError as e:
print(e) # → No module named 'no_such_module'
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности