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

ADF托管Airflow遇ModuleNotFoundError:scripts模块无法找到

问题分析与解决方案

核心原因

在ADF托管的Airflow环境中,默认PYTHONPATH并未将airflow/dags目录作为根模块路径,导致你使用绝对导入from scripts.my_script import MyClass时,Python无法定位到scripts模块。

解决方法

方法1:使用相对导入

将导入语句改为相对导入格式(适配同目录下的子模块引用):

from .scripts.my_script import MyClass

这种方式无需修改PYTHONPATH,直接利用Python的相对模块查找规则即可生效。

方法2:手动将dags目录加入PYTHONPATH

如果偏好使用绝对导入,可在my_dag.py开头添加代码,将当前脚本所在的dags目录加入Python路径列表:

import sys
from pathlib import Path

# 获取当前脚本所在的dags目录路径
dags_dir = Path(__file__).parent
# 将dags目录加入PYTHONPATH
sys.path.append(str(dags_dir))

# 之后即可正常使用绝对导入
from scripts.my_script import MyClass

方法3:验证__init__.py有效性

确认scripts文件夹下的__init__.py文件为空或无语法错误——若该文件存在代码问题,Python会将整个scripts目录判定为无效模块,同样会触发ModuleNotFoundError。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 07:24:54