PYTHONPATH ayarlanmasına rağmen VSCode'da içe aktarma hatası

Oct 26 2020

WSL'de yerel olarak konuşlandırılmış bir hava akışı ortamım var ve hata ayıklama ve kodlama için VScode kullanıyorum.

Uygulama klasör yapım aşağıdaki gibidir:

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

VSCode'un içe aktarmalarla ilgili davranışını anlamakta güçlük çekiyorum.

Ben eklendi dagsve pluginsklasörleri PYTHONPATHaracılığıyla .envdosyaya. VSCode'um doğrudan workspacesdizinde açılıyor .

Sorun :

İçe aktarmak go to definitionistediğim sınıfı başarılı bir şekilde alabilsem de içe aktarma hataları alıyorum .

Örnek: Benim facebook_operators.py

from hooks.facebook_hooks import FacebookAdsHook aşağıdaki hatayı ortaya çıkarır:

'Hooks' modülünde 'facebook_hooks' adı yok

Dosyamın içeriği .env:

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

Nerede hata yaptım? Lütfen bu hatayı anlamak ve çözmek istiyorum.

Yanıtlar

JillCheng Oct 27 2020 at 02:14

facebook_operators.pyVSCode'un içe aktarılması gereken dosyayı bulmasına yardımcı olmak için " " dosyasının başına şu ifadeyi ekleyin :

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

(VSCode varsayılan olarak, dosyayı o anda açık olan dosyanın üst klasöründen bulur. Yukarıdaki ifadeyi sistem yoluna aktarılması gereken dosya yolunu eklemek için kullanabiliriz ve ardından VSCode onu bulabilir.)