인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

hpsm5187님의 프로필 이미지
hpsm5187

작성한 질문수

Airflow 마스터 클래스

외부 파이썬 함수 수행하기

외부 파이썬 함수 수행하기 - workspace folder 질문

해결된 질문

작성

·

211

0

알찬 강의 항상 감사드립니다.

작업 위치1 (vsc상에서 작성하고 git push를 하는 위치) :

[~/Desktop/airflow강의]

작업 위치2 (WSL에서 git pull을 하는 위치) :

[~/airflow]

저는 위와 같은 경로상에서 수업 실습을 진행하고 있으며, '외부 파이썬 함수 수행하기' 강의에서 .env 파일을 다음과 같이 작성했습니다.

WORKSPACE_FOLDER=/Users/hpsm5187/Desktop/airflow강의

airflow가 인식하는 작업 폴더는 '작업 위치2'인 걸로 아는데, .env파일 내의 경로는 '작업 위치1'의 경로임에도 이상 없이 작동이 되는 부분이 의아합니다.

.env파일을 git에서 인식하지 않도록 처리했는데 .env에서 정의해준 경로는 어떻게 반영이 되는건가요?

답변 2

0

hpsm5187님의 프로필 이미지
hpsm5187
질문자

아 로컬상의 작업을 위한 설정이었군요! 이해했습니다 감사합니다!

0

김현진님의 프로필 이미지
김현진
지식공유자

안녕하세요 hpsm5187님!

질문의 내용을 미루어보아 vscode 내 .env 파일에

WORKSPACE_FOLDER와 PYTHONPATH 변수를 왜 설정하는지 아직 이해를 다 못하신것 같습니다 ^^

 

우선 vscode 내 .env 파일을 작성하는 것은 WSL 의 airflow를 위해서 작성하는 것이 아니라 로컬 컴퓨터 에서 작업하는 vscode를 위해서 작성할 뿐입니다. 그 이유는 아래 내용을 곰곰히 읽어보셔요.

-------------------------------------------------------------------------------------------

airflow가 기본적(별다른 설정없이 자동) 으로 인식할 수 있는 PYTHONPATH는 아래와 같습니다.

$HOME/plugins

$HOME/dags

$HOME/configs

 

그렇기 때문에 $HOME/plugins/example.py 를 작성해놓고, DAG에서 이 파일을 참조할 때 아래와 같이 작성할 수 있습니다.

from example import xxxxx 

즉 $HOME/plugins 까지는 airflow가 검색할 수 있는 위치이므로 from example 이라고 쓰면

$HOME/plugins/example 파일을 찾을 수 있는 것이죠.

여기까지 설명한 것은 WSL내 설치된 airflow에 대해 설명드린 것입니다.

 

반면 우리 로컬 컴퓨터에 설치한 VScode의 경우 기본적으로 PYTHONPATH 에

plugins, dags, configs 디렉토리가 추가되어 있지 않습니다.

그래서 vscode에서 DAG 작성시 example파일을 찾지 못한다고 warning이 뜨게 됩니다.

from example import xxxxx

물론 이대로 git push 하여 WSL 내에 반영되면 WSL 내 airflow는 문제없이 수행됩니다.

(위에 설명한대로 airflow는 $HOME/plugins/example 파일을 찾을 수 있으므로)

 

순전히 로컬 컴퓨터에서 작업하는 vscode 상에서 example파일을 찾을 수 있도록 PYTHONPATH를 추가해주는 작업이 .env 파일에 추가해주는 것입니다.

 

이해가 되셨을까요? 혹시 이해가 안되었거나 원하는 답변이 아니시라면 다시 남겨주세요 ^^

 

hpsm5187님의 프로필 이미지
hpsm5187

작성한 질문수

질문하기