import importlib importlib.import_module(name, package=None)
Функция import_module()
модуля importlib
динамически импортирует модуль.
Аргумент name
указывает, какой модуль импортировать в абсолютном или относительном выражении, например pkg.mod
или ..mod
. Если имя указано в относительных терминах, то в качестве аргумента package
должно быть указано имя пакета, которое должно служить якорем для разрешения имени пакета. например, import_module('.. mod', 'pkg.subpkg')
, будет импортировать pkg.mod
.
Функция importlib.import_module()
действует как упрощающая оболочка для importlib.__import__()
. Это означает, что вся семантика функции получена из importlib.__import__()
. Наиболее важное различие между этими двумя функциями заключается в том, что функция importlib.import_module()
возвращает указанный пакет или модуль, например pkg.mod
, а importlib.__import__()
возвращает пакет или модуль верхнего уровня, например pkg
.
Если вы динамически импортируете модуль, созданный с момента начала выполнения интерпретатора, например создал исходный файл Python, то может потребоваться вызов функции importlib.invalidate_caches()
, чтобы новый модуль был замечен системой импорта.
>>> from importlib import import_module >>> sub = import_module('re') >>> line = '1 256 2 389 4 156 5 4444' >>> re.sub(r'\s\d{3}\s', ' replace ', line) # '1 replace 2 replace 4 replace 5 4444'