Python 向气流中的DAG添加定义的推荐方法
我的Python项目大致结构如下:Python 向气流中的DAG添加定义的推荐方法,python,airflow,Python,Airflow,我的Python项目大致结构如下: ./code ./code/pipeline_xyz.py ./code/pipeline_xyz_test.py ./... ./code/utils.py ./definitions.py 管道依赖于utils.py,它也位于code目录中。在definitions.py中,我获取所有代码都使用的根目录的绝对目录 当我将code\u pipeline.[^test].py复制到Airflow的dags文件夹时,它无法运行它,因为缺少模块定义 处理这种设置
./code
./code/pipeline_xyz.py
./code/pipeline_xyz_test.py
./...
./code/utils.py
./definitions.py
管道依赖于utils.py
,它也位于code
目录中。在definitions.py
中,我获取所有代码都使用的根目录的绝对目录
当我将code\u pipeline.[^test].py
复制到Airflow的dags
文件夹时,它无法运行它,因为缺少模块定义
处理这种设置的推荐方法是什么?我应该为此创建一个静态文件夹(在项目目录之外),还是可以将定义和管道的结构复制到
dags
?我个人更喜欢熟悉的结构:
airflow-example-dags git:(master) tree -L 3
.
├── Dockerfile
├── LICENSE
├── dags
│ ├── example-dag.py
│ └── example_bash_operator.py
├── packages.txt
├── plugins
│ └── example-plugin.py
└── requirements.txt
2 directories, 7 files
或者您可以在这里检查它基本上,
dags
文件夹被添加到PYTHONPATH。因此,所有模块定义都应该与dags
文件夹相关。例如,如果将文件复制到dags
文件夹,如下所示:
/home/airflow/dags/pipeline_xyz_test.py
/home/airflow/dags/utils.py
/home/airflow/dags/definitions.py
在pipeline\u xyz\u test.py
中,可以执行导入定义。test\u class1
其中test\u class1
位于定义.py
内