2017-04-04 65 views
1

さまざまなpythonプロジェクト、すなわち1つの親dagsフォルダに対して異なる気流ダグを設定しています。/vol/dags/project1/project1.py, /vol/dags/project2/project2.pyDAGS_FOLDER = /vol/dagsのDAGのサブフォルダは/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 

私はこのようなproject1.pymycalculator.pyをインポートしようとした:フォルダ/vol/dags/project1/

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

あなたのpythonをコンパイルするときは、インポートを得るのですかエラー? – Dotan

+0

私は同じ問題があります。実際にDAGが実行されていてもAirflowが「壊れている」とマークしていても、コードビューアを開いてもWebサーバーが爆発することはありません。 – jastang

答えて

1

__init__.pyファイルが欠落しています。

このファイルは空白にすることができます。

は、このファイルを追加してからproject2.pyであなたが行うことができる必要があります:

import project1.mycalculator.* 

は、パッケージの詳細はこちらをご覧ください: https://docs.python.org/2/tutorial/modules.html#packages

関連する問題