Airflow导入Databricks Provider报错:No module named 'airflow.providers.databricks'
排查修复Airflow Databricks Provider模块缺失问题
1. 检查requirements.txt的包声明是否正确
Airflow 2.x的Databricks Provider对应的PyPI包名是apache-airflow-providers-databricks,不是模块路径airflow.providers.databricks。确认你的requirements.txt里写的是:
apache-airflow-providers-databricks>=3.0.0 # 建议指定与你Airflow版本兼容的版本 apache-airflow-providers-snowflake>=4.0.0
如果包名写错,会直接导致依赖安装失败。
2. 确认Docker环境中依赖是否被正确安装
如果你用的是Airflow官方Docker镜像,要保证docker-compose.yml配置了依赖安装逻辑:
- 方式一:挂载requirements.txt并在启动时执行安装
在airflow-webserver、airflow-scheduler等服务的配置里添加:volumes: - ./requirements.txt:/requirements.txt command: > bash -c "pip install -r /requirements.txt && airflow webserver" - 方式二:用官方环境变量指定额外依赖
environment: _PIP_ADDITIONAL_REQUIREMENTS: ${_PIP_ADDITIONAL_REQUIREMENTS:-apache-airflow-providers-databricks apache-airflow-providers-snowflake}
配置完后需要重启容器让依赖生效:
docker-compose down -v docker-compose up --build
3. 验证Airflow与Databricks Provider的版本兼容性
不同版本的Airflow对Provider的版本有要求:
- Airflow 2.0.x:只能用
apache-airflow-providers-databricks<3.0.0 - Airflow 2.1及以上:可以使用最新稳定版
你可以进入容器执行airflow version查看当前Airflow版本,再调整requirements里的版本号。
4. 检查DAG文件的导入语句是否正确
确保DAG里的导入路径是正确的模块路径,比如:
from airflow.providers.databricks.operators.databricks import DatabricksRunNowOperator, DatabricksSubmitRunOperator
如果导入时少写了providers或者拼写错误,也会触发模块找不到的报错。
5. 排查容器内的依赖安装状态
进入Airflow调度器或webserver容器,检查依赖是否真的安装成功:
docker-compose exec airflow-scheduler pip list | grep databricks
如果没有输出结果,说明依赖没装成功,检查requirements.txt是否被容器正确读取,或者是否是网络问题导致安装失败。
内容的提问来源于stack exchange,提问作者kpgenes
相关产品推荐
相关产品推荐

