PYTHONPATH 설정에도 불구하고 VSCode의 가져 오기 오류

Oct 26 2020

WSL에 로컬로 배포 된 기류 환경이 있고 VScode를 사용하여 디버깅 및 코딩하고 있습니다.

내 앱 폴더 구조는 다음과 같습니다.

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

가져 오기와 관련된 VSCode의 동작을 이해하는 데 문제가 있습니다.

via 파일에 dags및 plugins폴더를 추가했습니다 . 내 VSCode가 디렉터리에서 직접 열립니다 .PYTHONPATH.envworkspaces

문제 :

가져 오려는 go to definition클래스를 성공적으로 수행 할 수 있지만 가져 오기 오류가 발생합니다 .

예 : 내 facebook_operators.py

from hooks.facebook_hooks import FacebookAdsHook 다음 오류가 발생합니다.

모듈 'hooks'에 'facebook_hooks'라는 이름이 없습니다.

내 .env파일 의 내용 :

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

내가 어디로 잘못 갔습니까? 이 오류를 이해하고 해결하고 싶습니다.

답변

JillCheng Oct 27 2020 at 02:14

facebook_operators.pyVSCode가 가져와야하는 파일을 찾는 데 도움이되도록 파일 " " 의 시작 부분에 다음 문을 추가합니다 .

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

(VSCode는 기본적으로 현재 열려있는 파일의 상위 폴더에서 파일을 찾습니다. 위의 문을 사용하여 시스템 경로로 가져와야하는 파일 경로를 추가하면 VSCode에서 찾을 수 있습니다.)