2017-03-07 2 views
1

로컬 파일에 액세스 할 수 없습니다 : 공기 흐름 내가 폴더 구조를 가지고 파이썬 코드

root_folder 
    - file.conf 
    - models 
    - __init__.py 
    - model1.py 
    - airflow 
    - dags 
     - dag1.py 

그래서 위의 경우에 dag1 수입 model1. 이렇게하면 models/__init__.pyfile.conf 파일을로드하기 때문에 중단됩니다. 문제를 해결하지 못하는 것 같아 sys.path.append 통해 sys.path 루트 폴더를 추가하려고했습니다. init에서 상대 경로를 시도했지만 여전히 상대 경로를 통해 제공된 파일을 찾을 수 없습니다. 자체 코드를 에어 플로우 코드와 함께 묶는 좋은 방법은 무엇입니까?

작동시키기 위해 여러 가지 방법을 시도한 후에 파일의 절대 경로를 os.path.abspath(os.path.join(__file__ ,"../..") + '/file.conf')으로 사용하고 있습니다. 더 나은 방법을 알고 있다면 아래에서 대답하십시오. 감사합니다 :)

+0

당신이 file.conf로드하는 데 사용하는 코드는 무엇을 가져올 수 있습니까? –

+0

'os.path.abspath (os.path.join (__ file__, "../ ..") + '/file.conf')' – nehiljain

답변

0

당신은 root_folder 내부에 __init__.py 파일을 추가 할 수 있습니다

-root_folder - __init__.py - file.conf - models - __init__.py - model1.py - airflow - dags - dag1.py

이 그런 다음 root_folder에 $ PYTHONPATH의 경로를 추가합니다.

마지막으로 dag1.py 파일 가져 오기에

:

import file.conf

을 또한 당신은

import models.model1

관련 문제