Błąd importu w VSCode pomimo ustawienia PYTHONPATH
Mam środowisko przepływu powietrza lokalnie wdrożone w WSL i używam VScode do debugowania i kodowania.
Struktura folderów mojej aplikacji jest następująca:
~/workspaces
|--- .env
|---organization/gcp/datalake
|--- dags
|--- //My dags
|--- plugins
|--- __init.py__
|--- operators
|--- __init.py__
|--- facebook_operators.py
|--- hooks
|--- __init.py__
|--- facebook_hooks.py
Mam problem ze zrozumieniem zachowania VSCode w odniesieniu do importu.
Dodałem foldery dagsi pluginsdo pliku PYTHONPATHvia .env. Mój VSCode jest otwierany bezpośrednio w workspaceskatalogu.
Problem :
Dostaję błędy importu, chociaż mogę pomyślnie go to definitionz klasy, którą chcę zaimportować.
Przykład: w moim facebook_operators.py
from hooks.facebook_hooks import FacebookAdsHook wywołuje następujący błąd:
Brak nazwy „facebook_hooks” w module „hooks”
Zawartość mojego .envpliku:
PROJECTDIR=~/workspaces/organization/gcp/datalake
PYTHONPATH=${PROJECTDIR}/plugins PYTHONPATH=${PROJECTDIR}/dags:${PYTHONPATH}
Gdzie popełniłem błąd? Chciałbym zrozumieć i rozwiązać ten błąd.
Odpowiedzi
Dodaj następującą instrukcję na początku pliku „ facebook_operators.py”, aby pomóc VSCode znaleźć plik, który ma zostać zaimportowany:
import os,sys sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
(VSCode domyślnie wyszukuje plik z folderu nadrzędnego aktualnie otwartego pliku. Możemy użyć powyższej instrukcji, aby dodać ścieżkę do pliku, który ma zostać zaimportowany do ścieżki systemowej, a następnie VSCode może go znaleźć.)