首页 > 解决方案 > DAG导入两种方式的区别?

问题描述

我正在尝试创建动态 dag,但目前似乎失败了。我遇到了以两种不同的方式创建 DAG 对象:

标签: airflow

解决方案


两者都在导入相同的 DAG 类。只是 python 导入如何工作的一个属性。

当您这样做时,from airflow.models import DAGpython 正在导入模型文件并将变量 DAG 分配给模型文件中定义的 DAG 类。

当您这样做时,from airflow import DAGpython 正在导入在init .py中定义的变量 DAG,实际上就是from airflow.models import DAG.

最小版本是:

模型.py

class DAG():
    pass

初始化.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 失败,我怀疑它与此导入有关


推荐阅读