You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Apache Airflow的DAG文件中调用deps目录下的文件?

在Airflow的DAG文件中导入deps目录模块的正确方法

我在Airflow环境里有同级的dags和deps目录,想要在dags下的DAG文件(比如kafka_dag.py、parallel_tasks_dag.py)中使用deps目录内的工具模块,目前尝试了两种方式但没成功,下面是调整后的正确实现方案:

方案一:代码动态添加路径(无需修改配置)

你之前的代码问题在于,已经把deps目录加入了Python路径,却还带着deps前缀导入模块,修改后代码如下:

import sys
import os
# 将deps目录的绝对路径添加到Python搜索路径
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '../deps')))

# 直接从packages开始导入,无需加deps前缀
from packages.util.utilities import get_data, process_data

方案二:通过airflow.cfg配置全局路径(推荐)

之前的pythonpath配置错了路径层级,应该把包含deps的Airflow根目录加入路径,而不是deps本身:

  1. 修改airflow.cfg中的配置:
pythonpath = /home/user1/airflow
  1. 重启Airflow服务让配置生效
  2. 之后所有DAG文件可以直接导入,无需额外路径代码:
from deps.packages.util.utilities import get_data, process_data

注意事项

  • 确保deps、packages、util这些目录下都有__init__.py文件(空文件即可),Python才会把它们识别为可导入的包。
  • 如果用方案二,修改配置后一定要重启Airflow的webserver和scheduler服务,否则配置不会生效。

内容的提问来源于stack exchange,提问作者Pavithra Naga Yallapu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 08:11:00