Python 向气流中的DAG添加定义的推荐方法

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文件夹时,它无法运行它,因为缺少模块定义 处理这种设置

我的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
文件夹时,它无法运行它,因为缺少模块
定义


处理这种设置的推荐方法是什么?我应该为此创建一个静态文件夹(在项目目录之外),还是可以将定义和管道的结构复制到
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