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

AWS Lambda依赖导入失败求助:无法加载numpy核心模块

解决AWS Lambda中NumPy导入错误的方案

出现这个错误的核心原因是:你在Windows子系统Ubuntu中打包的NumPy依赖,是基于Ubuntu环境编译的二进制文件,而AWS Lambda运行的是Amazon Linux系统,两者底层系统库(比如glibc)存在差异,导致NumPy的C扩展模块无法被正确加载。升级NumPy不会解决问题,因为编译环境没变。

下面是可行的解决步骤:

1. 在与Lambda兼容的环境中重新打包依赖

方法一:用Docker模拟Lambda环境

  • 拉取AWS官方提供的Lambda Python 3.9镜像:
    docker pull public.ecr.aws/lambda/python:3.9
    
  • 创建本地目录用于存放依赖,进入该目录:
    mkdir lambda-deps && cd lambda-deps
    
  • 启动Docker容器并挂载本地目录:
    docker run -v "$PWD":/var/task public.ecr.aws/lambda/python:3.9 /bin/bash
    
  • 在容器内安装所需依赖到当前目录:
    pip3 install numpy pandas pymysql -t .
    
    (注:boto3是Lambda运行时自带的,如果不需要特定版本可以不用安装)
  • 退出容器(执行exit命令),然后打包目录内的所有内容:
    zip -r lambda-deps.zip .
    

方法二:用AWS Cloud9环境打包

  • 登录AWS控制台创建Cloud9环境,选择Amazon Linux 2系统,Python版本选3.9
  • 在Cloud9终端中创建依赖目录并安装包:
    mkdir deps && pip3 install numpy pandas pymysql -t ./deps
    
  • 进入deps目录并打包:
    cd deps && zip -r ../lambda-deps.zip .
    

2. 更新Lambda函数的依赖包

  • 将新打包的lambda-deps.zip上传到你的S3存储桶
  • 在Lambda控制台中,更新函数代码包(可以直接上传该zip,或者将你的业务代码和依赖合并打包后上传,确保业务代码文件和依赖目录在同一层级)

3. 验证运行环境匹配

  • 确认Lambda函数的运行时设置为Python 3.9,和打包时的Python版本完全一致
  • 测试函数,此时NumPy的C扩展模块应该能被正常加载

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 00:05:27