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

Airflow连接Snowflake遇ModuleNotFoundError,请求协助解决

解决Airflow连接Snowflake的ModuleNotFoundError问题

问题根源

错误ModuleNotFoundError: No module named 'airflow.providers.snowflake'主要来自两个点:

  • 导入路径过时:你代码里用的airflow.contrib.hooks.snowflake_hook是Airflow 1.x时代的写法,2.x版本中Snowflake相关组件已迁移到airflow.providers路径,contrib下的文件仅做重定向,若providers包未正确加载就会触发错误。
  • 环境不匹配:云shell中用pip3安装的包,可能和Airflow实际运行的Python环境不一致,导致Airflow无法识别已安装的依赖。

具体修复步骤

1. 替换代码中的导入路径

将旧的导入语句替换为Airflow 2.x官方推荐的路径:

# 替换原语句:from airflow.contrib.hooks.snowflake_hook import SnowflakeHook
from airflow.providers.snowflake.hooks.snowflake import SnowflakeHook

如果DAG中用到了Snowflake Operator,同样更新导入:

# 替换原语句:from airflow.contrib.operators.snowflake_operator import SnowflakeOperator
from airflow.providers.snowflake.operators.snowflake import SnowflakeOperator

2. 确保依赖安装到Airflow的Python环境

Airflow可能使用独立的Python环境,需用Airflow对应的pip重新安装依赖:

  • 先查看Airflow使用的Python解释器路径:
    airflow info | grep "Python Version"
    
  • 用对应路径的pip重新安装包(示例路径为/opt/python3.8/bin/pip3,根据实际结果替换):
    /opt/python3.8/bin/pip3 install snowflake-connector-python==2.4.5 snowflake-sqlalchemy==1.2.4 apache-airflow-providers-snowflake==2.3.0 apache-airflow-providers-common-sql
    

3. 验证版本兼容性

apache-airflow-providers-snowflake==2.3.0要求Airflow核心版本≥2.1.0,执行以下命令检查版本:

airflow version

若Airflow版本低于要求,需升级Airflow或调整providers包版本(比如降级到适配旧Airflow的providers版本)。

4. 重启Airflow服务

安装完成后重启Airflow的webserver和scheduler,确保新依赖被加载:

# 根据你的部署环境调整命令,示例为systemctl管理的服务
sudo systemctl restart airflow-webserver airflow-scheduler

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 21:35:23