DAG导入之间有两种区别?

时间:2018-06-22 19:40:05

标签: airflow

我正在尝试创建动态dag,但似乎在此刻失败了。我碰到了用两种不同的方法创建DAG对象:

1 个答案:

答案 0 :(得分:5)

两个都导入相同的DAG类。仅仅是python导入方式的一个属性。

当您执行from airflow.models import DAG时,python会导入模型文件并将变量DAG分配给模型文件中定义的DAG类。

当您执行from airflow import DAG时,python会导入init.py中定义的变量DAG,实际上它只是from airflow.models import DAG

最低版本为:

models.py

class DAG():
    pass

init .py

from airflow.models import DAG

dags / dag_file.py

# import __init__.py which imports models.py which contains DAG
from airflow import DAG

# or this which just imports models.py which contains DAG
from airflow.models import DAG

所有这些,如果您的动态DAG失败了,我怀疑它与此导入有关