2017-03-07 30 views
1

我有一個文件夾結構:氣流不能訪問本地文件的Python代碼

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

因此,在上述情況下dag1進口model1。這樣做時會中斷,因爲models/__init__.py加載file.conf文件。我試圖通過sys.path.append添加根文件夾到sys.path,這似乎不能解決問題。我也嘗試從初始化相對路徑,但它仍然無法找到通過相對路徑給出的文件。將自己的代碼與airflow代碼綁定的好方法是什麼?

嘗試各種方法使其工作後,似乎對我有效的是使用文件的絕對路徑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

然後將路徑添加到$ PYTHONPATH您ROOT_FOLDER。

終於在dag1.py文件導入:

import file.conf

,你也可以導入

import models.model1