Importfehler in VSCode trotz Einstellung des PYTHONPATH

Oct 26 2020

Ich habe eine Luftstromumgebung, die lokal in der WSL bereitgestellt wird, und ich verwende VScode zum Debuggen und Codieren.

Meine App-Ordnerstruktur ist wie folgt:

~/workspaces
|--- .env
|---organization/gcp/datalake
    |--- dags
        |--- //My dags
    |--- plugins
        |--- __init.py__
        |--- operators
            |--- __init.py__
            |--- facebook_operators.py
        |--- hooks
            |--- __init.py__
            |--- facebook_hooks.py

Ich habe Probleme, das Verhalten von VSCode in Bezug auf die Importe zu verstehen.

Ich fügte hinzu , die dagsund pluginsOrdner die PYTHONPATHüber .envDatei. Mein VSCode wird direkt im workspacesVerzeichnis geöffnet .

Das Problem :

Ich erhalte Importfehler, obwohl ich go to definitiondie Klasse, die ich importieren möchte, erfolgreich ausführen kann.

Beispiel: In meinem facebook_operators.py

from hooks.facebook_hooks import FacebookAdsHook löst folgenden Fehler aus:

Kein Name 'facebook_hooks' im Modul 'hooks'

Der Inhalt meiner .envDatei:

PROJECTDIR=~/workspaces/organization/gcp/datalake
PYTHONPATH=${PROJECTDIR}/plugins PYTHONPATH=${PROJECTDIR}/dags:${PYTHONPATH}

Was habe ich falsch gemacht? Ich möchte diesen Fehler bitte verstehen und lösen.

Antworten

JillCheng Oct 27 2020 at 02:14

Fügen Sie am Anfang der Datei " facebook_operators.py" die folgende Anweisung hinzu , damit VSCode die zu importierende Datei findet:

import os,sys 
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

(VSCode sucht standardmäßig nach der Datei aus dem übergeordneten Ordner der aktuell geöffneten Datei. Mit der obigen Anweisung können Sie den Dateipfad hinzufügen, der in den Systempfad importiert werden muss, und VSCode kann ihn dann finden.)