Błąd importu w VSCode pomimo ustawienia PYTHONPATH

Oct 26 2020

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

JillCheng Oct 27 2020 at 02:14

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źć.)