Erro de importação em VSCode apesar de definir PYTHONPATH
Eu tenho um ambiente de fluxo de ar implantado localmente em WSL e estou usando o VScode para depurar e codificar.
A estrutura de pastas do meu aplicativo é a seguinte:
~/workspaces
|--- .env
|---organization/gcp/datalake
|--- dags
|--- //My dags
|--- plugins
|--- __init.py__
|--- operators
|--- __init.py__
|--- facebook_operators.py
|--- hooks
|--- __init.py__
|--- facebook_hooks.py
Estou tendo problemas para entender o comportamento do VSCode em relação às importações.
Eu adicionei as pastas dagse pluginsao arquivo PYTHONPATHvia .env. Meu VSCode é aberto diretamente no workspacesdiretório.
O problema :
Recebo erros de importação, embora consiga go to definitionda classe que desejo importar.
Exemplo: no meu facebook_operators.py
from hooks.facebook_hooks import FacebookAdsHook levanta o seguinte erro:
Sem nome 'facebook_hooks' no módulo 'hooks'
O conteúdo do meu .envarquivo:
PROJECTDIR=~/workspaces/organization/gcp/datalake
PYTHONPATH=${PROJECTDIR}/plugins PYTHONPATH=${PROJECTDIR}/dags:${PYTHONPATH}
Onde é que eu me enganei? Gostaria de entender e resolver esse erro, por favor.
Respostas
Adicione a seguinte instrução no início do arquivo " facebook_operators.py" para ajudar o VSCode a encontrar o arquivo que precisa ser importado:
import os,sys sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
(O padrão do VSCode é encontrar o arquivo da pasta pai do arquivo aberto no momento. Podemos usar a instrução acima para adicionar o caminho do arquivo que precisa ser importado para o caminho do sistema e, em seguida, o VSCode pode encontrá-lo.)