Lỗi nhập trong VSCode mặc dù đã đặt PYTHONPATH
Tôi có một môi trường luồng không khí được triển khai cục bộ trên WSL và tôi đang sử dụng VScode để gỡ lỗi và viết mã.
Cấu trúc thư mục ứng dụng của tôi như sau:
~/workspaces
|--- .env
|---organization/gcp/datalake
|--- dags
|--- //My dags
|--- plugins
|--- __init.py__
|--- operators
|--- __init.py__
|--- facebook_operators.py
|--- hooks
|--- __init.py__
|--- facebook_hooks.py
Tôi gặp khó khăn khi hiểu hành vi của VSCode liên quan đến hàng nhập khẩu.
Tôi đã thêm dagsvà pluginscác thư mục vào tệp PYTHONPATHqua .env. VSCode của tôi được mở trực tiếp trên workspacesthư mục.
Vấn đề :
Tôi gặp lỗi nhập, mặc dù tôi có thể nhập thành công go to definitionlớp mà tôi muốn nhập.
Ví dụ: Trong của tôi facebook_operators.py
from hooks.facebook_hooks import FacebookAdsHook phát sinh lỗi sau:
Không có tên 'facebook_hooks' trong mô-đun 'hooks'
Nội dung .envtệp của tôi :
PROJECTDIR=~/workspaces/organization/gcp/datalake
PYTHONPATH=${PROJECTDIR}/plugins PYTHONPATH=${PROJECTDIR}/dags:${PYTHONPATH}
Tôi đã sai ở đâu? Tôi muốn hiểu và giải quyết lỗi này.
Trả lời
Thêm câu lệnh sau vào đầu tệp " facebook_operators.py" để giúp VSCode tìm tệp cần nhập:
import os,sys sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
(VSCode mặc định tìm tệp từ thư mục mẹ của tệp hiện đang mở. Chúng ta có thể sử dụng câu lệnh trên để thêm đường dẫn tệp cần nhập vào đường dẫn hệ thống và sau đó VSCode có thể tìm thấy tệp đó.)