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

AWS Lambda(Python3.11)导入NumPy1.25.1失败求助

解决AWS Lambda中Python 3.11的NumPy导入错误

核心问题本质

numpy.core._multiarray_umath导入失败,根源是本地构建的NumPy依赖和Lambda的Amazon Linux 2运行环境不兼容——NumPy包含C扩展模块,必须在与Lambda一致的系统架构、Python版本环境下编译才能正常运行。

分步解决方案

  • 重新在Lambda兼容环境下构建Layer依赖
    直接在Windows/macOS本地安装的NumPy无法适配Lambda的Amazon Linux 2系统,必须用匹配环境构建:

    1. 用Docker启动Lambda官方镜像:docker run -v "$PWD":/var/task public.ecr.aws/sam/build-python3.11:latest /bin/bash
    2. 在容器内创建Layer目录结构并安装依赖:mkdir -p python/lib/python3.11/site-packages && pip install numpy==1.25.1 -t python/lib/python3.11/site-packages/
    3. 退出容器后,将python目录打包为zip文件,重新上传作为Layer。
  • 验证Layer的打包结构
    Lambda Python Layer的正确路径必须是python/lib/python3.11/site-packages/[依赖包],如果打包时把依赖直接放在zip根目录,Lambda会无法识别。可以解压zip文件检查路径是否符合要求。

  • 解决低版本Python下的urllib错误
    切换到Python3.8/3.9/3.10时出现的urllib错误,有两个可能:

    1. 代码使用了Python3.11新增的urllib特性(比如特定参数、模块结构),需要调整代码适配低版本Python;
    2. Layer依赖是基于Python3.11构建的,和低版本Python不兼容,需要对应Runtime版本重新构建Layer。
  • 尝试使用预构建的科学计算Layer
    可以直接使用AWS官方提供的AWSLambda-Python311-SciPy1x Layer,该Layer包含预编译好的NumPy等科学计算库,完全适配Python3.11的Lambda环境,无需自行构建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 02:15:08