2017-03-07 54 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