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

Azure托管Airflow运行自定义DAG遇模块缺失错误及功能疑问

ADF托管Airflow实例问题解答

一、解决ModuleNotFoundError: No module named 'dependencies'报错

你的目录结构中,dependencies文件夹与dags同级,但Airflow默认仅将dags目录加入Python模块搜索路径,导致DAG文件无法直接导入dependencies下的模块。可通过两种方式解决:

  • 方式1:在DAG文件中手动添加模块路径
    在lottery_main.py开头加入以下代码,将dependencies所在目录纳入Python搜索路径:
import sys
from pathlib import Path

# 获取airflow根目录(dags文件夹的父目录)
airflow_root = Path(__file__).parent.parent
# 将dependencies目录添加到sys.path
sys.path.append(str(airflow_root / "dependencies"))

# 现在可正常导入lottery_pb模块
from lottery_pb import 你的目标函数/类
  • 方式2:调整目录结构
    将dependencies文件夹移动到dags目录下,Airflow会自动识别该目录内的模块,无需修改导入路径。调整后结构如下:
  • airflow目录
    • dags文件夹
      • lottery_main.py
      • dependencies文件夹:包含lottery_pb.py

二、关于托管Airflow运行自定义任务的疑问

ADF托管的Airflow是完整的Apache Airflow环境,完全支持运行自定义任务,并非只能在DAG中调用ADF管道。你可以使用Airflow原生的所有Operator(如PythonOperator、BashOperator、PostgresOperator等)编写自定义业务逻辑,功能与独立部署的Airflow实例完全一致。

网上资源多展示调用ADF管道的场景,是因为这是ADF与托管Airflow集成的典型用法,但这并不限制你使用Airflow的全部原生能力。

内容的提问来源于stack exchange,提问作者Mani

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 16:57:07