PYTHONPATH ayarlanmasına rağmen VSCode'da içe aktarma hatası
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
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.)