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

Airflow 2.5.0连接AWS报错:ModuleNotFoundError: 找不到airflow.providers.amazon模块

问题:Airflow 2.5.0 运行S3 DAG时出现ModuleNotFoundError

运行一个用于查看S3存储桶内容的简单Airflow DAG,持续报错:ModuleNotFoundError: No module named 'airflow.providers.amazon'。已尝试多个同类问题推荐的pip安装方案,但问题仍未解决。当前使用Airflow 2.5.0版本。

我的Python脚本

import datetime
import logging

from airflow import DAG
from airflow.models import Variable
from airflow.operators.python_operator import PythonOperator
from airflow.hooks.S3_hook import S3Hook

def list_keys():
    hook = S3Hook(aws_conn_id='aws_credentials_old')
    bucket = Variable.get('s3_bucket')
    prefix = Variable.get('s3_prefix')
    logging.info(f"Listing Keys from {bucket}/{prefix}")
    keys = hook.list_keys(bucket, prefix=prefix)
    for key in keys:
        logging.info(f"- s3://{bucket}/{key}")


dag = DAG(
        'lesson1.exercise4',
        start_date=datetime.datetime.now())

list_task = PythonOperator(
    task_id="list_keys",
    python_callable=list_keys,
    dag=dag
)

Airflow Webserver错误截图

Airflow Webserver错误截图


解决方法

1. 安装对应版本的Amazon Provider包

Airflow 2.x版本中,AWS相关的钩子、操作符都迁移到了独立的apache-airflow-providers-amazon包中,你需要安装与Airflow 2.5.0兼容的版本:

pip install apache-airflow-providers-amazon==8.4.0

注意:要确保pip命令指向Airflow实际运行的Python环境,避免安装到系统Python或其他虚拟环境中。

2. 修正S3Hook的导入路径

Airflow 2.x已变更了S3Hook的导入路径,你当前使用的是Airflow 1.x的写法,需要替换为:

from airflow.providers.amazon.aws.hooks.s3 import S3Hook

3. 验证安装并重启服务

  • 进入Airflow使用的Python环境,执行以下命令验证导入是否正常:
from airflow.providers.amazon.aws.hooks.s3 import S3Hook

无报错则说明安装成功。

  • 重启Airflow Webserver和Scheduler,确保新安装的包被加载:
airflow webserver restart
airflow scheduler restart

4. 检查虚拟环境(若使用)

如果Airflow运行在虚拟环境中,必须先激活对应环境再执行安装命令,防止包安装到错误环境导致Airflow无法识别。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 16:25:19