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

Windows环境下Apache Airflow调用S3Hook报botocore模块缺失错误如何解决

问题根因

报错核心信息:ModuleNotFoundError: No module named 'botocore'
Airflow的S3Hook属于AWS相关的扩展功能,默认安装Airflow时不会内置AWS SDK依赖,botocore是AWS Python SDK的核心依赖库,缺失就会触发导入失败。

解决方案

1. 安装对应依赖

分不同部署场景操作:

  • 本地直接部署的Airflow(非容器化)
    直接在Airflow运行的Python环境中执行安装命令:
    如果是Airflow 1.x版本:
    pip install apache-airflow[s3]
    
    如果是Airflow 2.x版本,建议安装官方AWS provider包(包含所有AWS相关hook、operator依赖):
    pip install apache-airflow-providers-amazon
    
    也可以直接安装缺失的依赖:
    pip install boto3 botocore
    
  • Docker/docker-compose部署的Airflow
    不能直接进入容器临时安装(容器重建后依赖会丢失),需要按以下方式配置:
    • 方案A:在docker-compose.yml的环境变量中添加额外依赖声明
      在x-airflow-common的environment块下添加:
      _PIP_ADDITIONAL_REQUIREMENTS: apache-airflow-providers-amazon boto3 botocore
      
    • 方案B:编写自定义Dockerfile,在镜像构建阶段预先安装依赖,再用自定义镜像启动服务。

2. 修正潜在的拼写错误

从报错栈中可见之前的代码存在大小写错误:from airflow.hooks.S3_hook import S3hook,类名正确写法是首字母大写的S3Hook,你当前贴出的代码已经修正了该问题,确认保持即可。

3. 重启Airflow服务

安装完依赖后必须重启所有Airflow组件:webserver、scheduler、worker,新的依赖才会被加载生效。

4. 验证修复效果

进入Airflow运行的Python环境,依次执行以下命令,无报错即代表修复完成:

import botocore
from airflow.hooks.S3_hook import S3Hook

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:12:00