2017-08-20 80 views
2

我正在使用virtualenv。我正在嘗試使用DAG文件夾內的軟件包。 airflow_home目錄的當前狀態是:Airflow沒有爲airflow_home目錄中的目錄命名的模塊

airflow_home/airflow.cfg 
airflow_home/airflow.db 
airflow_home/dags/__init__.py 
airflow_home/dags/hello_world.py 
airflow_home/dags/support/inner.py 
airflow_home/dags/support/__init__.py 

hello_world.py具有代碼:

from datetime import datetime 
from airflow import DAG 
from airflow.operators.dummy_operator import DummyOperator 
from airflow.operators.python_operator import PythonOperator 
from dags.support import inner 


def print_hello(): 
    return 'Hello world' 

dag = DAG('hello_world', description='simple tutorial DAG', 
      schedule_interval='0 12 * * *', start_date=datetime(2017, 8, 20), catchup=False) 

dummy_operator = DummyOperator(task_id='dummy_task', retries=3, dag=dag) 

hello_operator = PythonOperator(task_id='hello_task', python_callable=print_hello, dag=dag) 

hello_from_inner_operator = PythonOperator(task_id='hello_from_inner', python_callable=inner.hello_from_inner, dag=dag) 

dummy_operator >> hello_operator 
hello_operator >> hello_from_inner_operator 

如果我可以手動運行該腳本,它運行。但後來我開始氣流調度,

Broken DAG: No module named 'dags' 

錯誤出現。我做錯了什麼,解決這個問題的方法是什麼?

+0

我是新來的氣流,但我假設它的路徑問題。你能夠做'從支持導入內部'嗎? –

+0

是的,從支持導入內部運行良好。 – zxyzxy

+0

好的,太好了。當AF調度程序也運行它時,它也可以工作嗎? –

回答

2

使用from support import inner代替。

當氣流開始時,路徑$AIRFLOW_HOME/dags將被添加到sys.path中。所以它會搜索dags目錄下的模塊。

相關問題