2017-04-04 127 views
1

我为不同的python项目设置了不同的气流档案,即一个父级dags文件夹/vol/dags与基于不同python项目的DAG的子文件夹:/vol/dags/project1/project1.py, /vol/dags/project2/project2.py其中DAGS_FOLDER = /vol/dags如何在气流中设置多个Dag目录

project1.py例如从同一个目录中的另一个python文件导入一个函数,即/vol/dags/project1/mycalculator.py。但是,当我开始气流的Web服务器,我得到一个ImportError

/vol/dags/project1/$ airflow webserver -p 8080 

INFO - Filling up the DagBag from /vol/dags/ 
ERROR - Failed to import: /vol/dags/project1/project1.py 
Traceback (most recent call last): 
    File "/Users/xxx/anaconda/lib/python2.7/site-packages/airflow/models.py", line 247, in process_file 
    m = imp.load_source(mod_name, filepath) 
    File "/vol/dags/project1/project1.py", line 10, in <module> 
    from mycalculator import * 
ImportError: No module named mycalculator 

我试图导入mycalculator.pyproject1.py这样的:

from airflow import DAG 
from airflow.operators.bash_operator import BashOperator 
from airflow.operators import PythonOperator 
from datetime import datetime, timedelta 
from mycalculator import * 

dag = DAG(
    dag_id='project1', default_args=args, 
    schedule_interval="@once") 
+0

当你编译蟒蛇你得到一个进口错误? – Dotan

+0

我有同样的问题。但DAG实际上仍在运行,尽管Airflow将其标记为“损坏”,并且在打开代码查看器时Web服务器不会爆炸。 – jastang

回答