Airflow项目执行pytest时出现ModuleNotFoundError问题求助
解决Airflow项目pytest测试时ModuleNotFoundError问题
配置pytest路径:在项目根目录创建
conftest.py文件,写入以下代码强制将项目根目录加入Python搜索路径:import sys from pathlib import Path sys.path.insert(0, str(Path(__file__).parent))这能绕过Airflow环境变量对pytest路径的限制,直接让测试用例找到项目内的自定义模块。
检查airflow.cfg核心配置:确认
core.dags_folder指向项目的DAG目录(如./dags),同时保证common等自定义模块所在目录在项目根目录下,且每个子目录都包含空的__init__.py文件(符合Python包结构要求)。验证Airflow版本兼容性:运行
pip freeze | grep apache-airflow查看当前版本,不同版本的模块加载逻辑有差异(比如2.x和1.x的导入规则不同),确保自定义模块的导入方式与当前Airflow版本匹配,统一使用绝对导入(如from common.utils import xxx)。区分Airflow与pytest环境:先执行
airflow dags list验证Airflow本身能否识别自定义模块,如果该命令也报错,说明是Airflow配置问题;若Airflow正常,则检查pytest.ini或pyproject.toml中是否有覆盖路径的配置,避免其干扰项目根目录的路径识别。
内容的提问来源于stack exchange,提问作者Adrien
相关产品推荐
相关产品推荐

