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

如何在AWS Lambda中通过Layer导入Numpy并解决导入报错

解决AWS Lambda通过Layer导入Numpy的问题

核心问题分析

你遇到的No module named 'numpy'错误,大概率是两个原因:一是本地打包时的目录结构不符合Lambda Layer的要求;二是本地安装的Numpy和Lambda的Linux运行环境不兼容。


正确操作步骤

1. 确认Lambda运行时的Python版本

先查看你的Lambda函数使用的Python版本(比如3.9、3.10),后续所有操作必须对应这个版本。

2. 打包兼容的Numpy包(关键步骤)

Lambda运行在Linux环境中,直接在Windows/macOS安装的Numpy会存在兼容性问题,推荐用Docker模拟Lambda环境打包:

  • 拉取对应Python版本的Lambda镜像:
docker pull public.ecr.aws/sam/build-python3.9
  • 运行容器并挂载本地目录:
docker run -v "$PWD:/var/task" -it public.ecr.aws/sam/build-python3.9 /bin/bash
  • 在容器内创建Layer要求的目录结构并安装Numpy:
mkdir -p python/lib/python3.9/site-packages
pip install numpy -t python/lib/python3.9/site-packages/
  • 退出容器后,在本地打包目录:
zip -r numpy-layer.zip python/

如果是Linux本地环境,可直接执行:

mkdir -p python/lib/python3.9/site-packages
pip install numpy -t python/lib/python3.9/site-packages/ --platform manylinux2014_x86_64 --only-binary=:all:
zip -r numpy-layer.zip python/

3. 创建并上传Lambda Layer

  • 登录AWS控制台,进入Lambda服务,选择「Layers」→「Create layer」
  • 填写Layer名称,上传生成的numpy-layer.zip,选择对应Python运行时版本
  • 点击「Create」完成创建

4. 关联Layer到Lambda函数

  • 打开目标Lambda函数,在「Layers」模块点击「Add a layer」
  • 选择刚创建的Numpy Layer,点击「Add」
  • 保存函数后重新测试

验证代码

可以用以下代码测试Numpy是否正常工作:

import json
import numpy 

def lambda_handler(event, context):
    test_array = numpy.array([1,2,3])
    return {
        'statusCode': 200,
        'body': json.dumps(f'Numpy运行正常!测试数组:{test_array.tolist()}')
    }

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 06:35:15