本地运行的Airflow无法从dags目录加载DAG问题求助
可能的原因及排查方向
- Python环境依赖冲突:部署Heroku时安装新版Airflow,可能导致本地Python环境的Airflow核心包、provider依赖版本不兼容。执行
pip list查看本地Airflow及相关依赖版本,对比Heroku环境的版本,或者创建全新虚拟环境安装对应版本的Airflow测试。 - DAG代码兼容性问题:新版Airflow可能废弃了旧API或语法,本地原有DAG代码在新版本下无法解析。运行
airflow dags list查看终端输出的报错,或检查Airflow webserver的日志,定位是否有语法错误、导入失败或API弃用提示。 - DAG目录权限异常:部署操作可能误改了本地DAG目录的读写权限,导致Airflow进程无法读取文件。Linux/macOS下执行
ls -l查看目录权限,Windows下检查文件夹的安全权限,确保Airflow运行用户拥有读权限。 - 元数据数据库未升级:Airflow版本升级后,元数据库的Schema可能需要更新。运行
airflow db upgrade执行数据库迁移,修复元数据结构与新版本的兼容性问题。 - 生效DAG目录被覆盖:即便airflow.cfg配置正常,可能存在系统或shell级的环境变量(如
AIRFLOW__CORE__DAGS_FOLDER)在部署后被修改,覆盖了配置文件的设置。执行airflow config get-value core dags_folder确认实际生效的DAG目录路径是否正确。 - DAG缓存残留问题:Airflow会缓存已解析的DAG,升级后旧缓存可能导致加载异常。删除
$AIRFLOW_HOME/dags下的缓存文件,或清理$AIRFLOW_HOME/tmp目录,重启Airflow webserver和scheduler进程。
内容的提问来源于stack exchange,提问作者kevin.c
相关产品推荐
相关产品推荐

