Função built-in Python `__import__`
Esta função é invocada pela instrução import. Ela pode ser substituída [...] para alterar a semântica da instrução import, mas fazer isso é fortemente desencorajado, pois geralmente é mais simples usar ganchos de importação [...]. O uso direto de __import__() também é desencorajado em favor de importlib.import_module().
Introdução
A função __import__() é a função subjacente que é chamada pela instrução import. Embora seja possível usá-la diretamente, geralmente é desencorajado. Para importar módulos dinamicamente, a função importlib.import_module() é a abordagem recomendada.
Exemplo
Veja como você poderia usar __import__() para importar dinamicamente o módulo math:
# Importar dinamicamente o módulo 'math'
math_module = __import__('math')
# Agora você pode usá-lo como um import normal
print(math_module.sqrt(4))
2.0
No entanto, a maneira recomendada usando importlib é:
import importlib
math_module = importlib.import_module('math')
print(math_module.sqrt(4))
2.0