Erreur d'importation dans VSCode malgré la définition du PYTHONPATH
J'ai un environnement de flux d'air déployé localement sur WSL et j'utilise VScode pour déboguer et coder.
La structure de mes dossiers d'application est la suivante:
~/workspaces
|--- .env
|---organization/gcp/datalake
|--- dags
|--- //My dags
|--- plugins
|--- __init.py__
|--- operators
|--- __init.py__
|--- facebook_operators.py
|--- hooks
|--- __init.py__
|--- facebook_hooks.py
J'ai du mal à comprendre le comportement de VSCode concernant les importations.
J'ai ajouté les dossiers dagset pluginsau fichier PYTHONPATHvia .env. Mon VSCode est ouvert directement sur l' workspacesannuaire.
Le problème :
J'obtiens des erreurs d'importation, bien que je puisse réussir go to definitionla classe que je souhaite importer.
Exemple: dans mon facebook_operators.py
from hooks.facebook_hooks import FacebookAdsHook déclenche l'erreur suivante:
Pas de nom 'facebook_hooks' dans le module 'hooks'
Le contenu de mon .envdossier:
PROJECTDIR=~/workspaces/organization/gcp/datalake
PYTHONPATH=${PROJECTDIR}/plugins PYTHONPATH=${PROJECTDIR}/dags:${PYTHONPATH}
Où me suis-je trompé? J'aimerais comprendre et résoudre cette erreur s'il vous plaît.
Réponses
Ajoutez l'instruction suivante au début du fichier " facebook_operators.py" pour aider VSCode à trouver le fichier à importer:
import os,sys sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
(VSCode recherche par défaut le fichier dans le dossier parent du fichier actuellement ouvert. Nous pouvons utiliser l'instruction ci-dessus pour ajouter le chemin du fichier qui doit être importé au chemin système, puis VSCode peut le trouver.)