2017-08-20 20 views
2

私はvirtualenvで作業しています。私はDAGフォルダ内のパッケージを使用しようとしています。 airflow_homeディレクトリの現在の状態は次のとおりです。私はこのスクリプトを手動で実行することができれば気流airflow_homeディレクトリ内のディレクトリに名前のないモジュール

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 

は、それが実行されます。

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は、コードを持っています。しかし、私は気流スケジューラを開始、

Broken DAG: No module named 'dags' 

エラーが表示されます。私が間違ってやっていること、これを解決する方法は何ですか?

+0

私はエアフローが初めてですが、私はそのパスの問題を想定しています。あなたは 'support import inner'から'できますか? –

+0

はい、サポートインナーからうまく機能しています。 – zxyzxy

+0

元気です。それはAFスケジューラもそれを実行するときに動作しますか? –

答えて

2

from support import innerを代わりに使用してください。

空気の流れが始まると$AIRFLOW_HOME/dagssys.pathに追加されます。それで、dagsディレクトリ下のモジュールを検索します。

関連する問題