Python Glossary English

все 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Сообщить о неточности