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

MWAA环境中pandas已声明但DAG导入时报ModuleNotFoundError求助

MWAA中pandas模块找不到的排查与解决办法

可能原因

  • requirements.txt路径配置错误:MWAA实例未正确读取到S3上的依赖声明文件,导致pandas未安装
  • 依赖安装未生效:配置路径正确但实例未触发安装,或安装过程存在隐藏报错(如依赖冲突、网络超时)
  • DAG加载时机问题:DAG在依赖安装完成前就被加载,全局作用域的import触发报错
  • 环境隔离问题:MWAA的scheduler与worker环境存在差异,scheduler能读取依赖但worker节点未同步

排查与解决步骤

  • 验证requirements.txt路径配置:
    进入MWAA控制台,检查环境配置中的Requirements file S3 path是否指向正确的S3对象(格式示例:s3://your-bucket/dags/requirements.txt),同时确认MWAA执行角色拥有该S3对象的读取权限。
  • 检查依赖安装日志:
    在CloudWatch日志组中,找到对应MWAA环境的/aws/mwaa/environment/[你的环境名]/task日志,搜索pip install相关条目,查看是否有安装失败提示。若pandas 2.2.3与MWAA基础环境不兼容,可尝试降级到适配版本(如pandas 1.5.3,适配MWAA的Python 3.8/3.9环境)。
  • 触发依赖重新安装:
    修改requirements.txt(如添加空行)并重新上传至S3,MWAA会自动触发依赖更新;或在MWAA控制台环境详情页点击Update environment,无需修改其他配置,直接确认更新以强制实例重新加载依赖。
  • 调整DAG导入逻辑:
    避免在DAG全局作用域直接执行import pandas as pd,将导入放在任务函数内部延迟加载,示例:
    def process_data():
        import pandas as pd
        # 任务逻辑代码
    
  • 验证worker环境依赖:
    创建测试DAG执行pip list命令,确认worker节点是否安装pandas:
    from airflow import DAG
    from airflow.operators.bash import BashOperator
    from datetime import datetime
    
    with DAG('check_pandas_dep', start_date=datetime(2024, 1, 1), schedule=None) as dag:
        check_dep = BashOperator(
            task_id='check_pandas',
            bash_command='pip list | grep pandas'
        )
    
    运行任务后查看日志输出,确认是否存在pandas条目。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 18:42:37