Função built-in Python `__import__`

Da documentação do Python 3

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