Importações relativas em Python
📁 python, pergunta, ajuda
Por algum tempo (já que importações relativas foram canceladas) não consigo resolver normalmente a seguinte questão:
Suponha, a estrutura do programa
app/ __init__.py foo/ __init__.py handler.py como do módulo handler.py carregar algo do pacote foo ?
A questão é que o nome do pacote foo é desconhecido, eu o carrego com importlib .
Enquanto isso, encontrei uma gambiarra: eu corto a variável __name__ , que em handler.py é igual a 'foo.handler' , ou seja, assim
foo_name = __name__.rsplit('.', 1)[0] e então carrego o módulo que preciso
need_module = importlib.import_module(foo_name + '.need_module')