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

如何在AWS Lambda中导入Numpy和Pandas并处理CSV文件?

解决AWS Lambda中无法导入Numpy/Pandas的问题

我之前也踩过完全一样的坑!本地跑好好的代码,一放到Lambda就报No module named 'numpy',哪怕打包了依赖也没用——核心原因是你在Windows/macOS上打包的依赖和Lambda的Amazon Linux运行环境不兼容,系统架构、编译后的二进制文件都不一样,Lambda根本识别不了。下面给你几个亲测有效的解决方案:

方案1:使用Lambda层(Layers)管理依赖(最推荐,长期维护更省心)

Lambda层可以把依赖和代码分离,还能重复用到多个函数里,步骤如下:

  1. 构建兼容Lambda环境的依赖包
    • 用Docker模拟Lambda环境是最方便的方式:
      • 拉取对应Python版本的Lambda基础镜像(比如你用Python 3.9):
        docker run -it --rm public.ecr.aws/lambda/python:3.9 /bin/bash
        
      • 在容器里创建目标目录并安装依赖:
        mkdir -p python/lib/python3.9/site-packages
        pip install numpy pandas -t python/lib/python3.9/site-packages
        
      • 退出容器,把容器里的python目录拷贝到本地:
        docker cp <容器ID>:python ./lambda-layer
        
      • 进入lambda-layer目录,压缩成zip包:
        cd lambda-layer
        zip -r numpy-pandas-layer.zip python/
        
    • 你也可以用AWS EC2的Amazon Linux实例打包,原理和Docker一致,都是在和Lambda匹配的环境里安装依赖。
  2. 创建Lambda层并关联函数
    • 登录AWS控制台,进入Lambda服务,左侧菜单选「层」→「创建层」
    • 上传刚才的numpy-pandas-layer.zip,选择对应Python版本,命名后保存
    • 回到你的Lambda函数,在「层」模块点击「添加层」,选择刚创建的层,保存后测试函数即可

方案2:本地构建兼容的部署包(适合快速测试,不想用层的情况)

如果你不想用层,可以直接在本地跨平台安装兼容Lambda的依赖:

  1. 打开终端,创建空的package目录:
    mkdir package && cd package
    
  2. 用pip安装跨平台兼容的依赖(替换成你Lambda用的Python版本,比如3.9):
    pip install --platform manylinux2014_x86_64 --target ./ --implementation cp --python-version 3.9 --only-binary=:all: numpy pandas
    
  3. 把你的lambda_function.py复制到package目录下
  4. 压缩package目录里的所有内容(注意:不要压缩package文件夹本身,要选中里面的所有文件和子文件夹再压缩)
  5. 把这个zip包上传到Lambda函数,替换原来的部署包即可

方案3:检查打包的正确姿势(很多人在这里犯错)

如果已经尝试打包但还是报错,大概率是打包结构不对:

  • ❌ 错误做法:把虚拟环境(比如venv)整个打包进去,或者把依赖放在子文件夹里,Lambda不会去这些路径查找模块
  • ✅ 正确结构:你的lambda_function.py和numpy、pandas等依赖包要在同一层级;如果用层,层的结构必须是python/lib/pythonX.X/site-packages/(X.X是Python版本)下面存放依赖

方案4:使用Lambda容器镜像(适合复杂依赖场景)

如果你的依赖不止numpy/pandas,或者经常遇到环境兼容问题,可以用容器镜像部署:

  1. 创建Dockerfile,内容如下(替换成你的Python版本):
    FROM public.ecr.aws/lambda/python:3.9
    COPY requirements.txt .
    RUN pip install -r requirements.txt --target "${LAMBDA_TASK_ROOT}"
    COPY lambda_function.py ${LAMBDA_TASK_ROOT}
    CMD ["lambda_function.lambda_handler"]
    
  2. 同目录下创建requirements.txt,写入:
    numpy
    pandas
    
  3. 构建镜像并推送到AWS ECR(弹性容器注册表)
  4. 在Lambda控制台选择「容器镜像」创建函数,选择你推送到ECR的镜像即可

额外注意事项

  • 确保Lambda函数的Python版本和你安装依赖时指定的版本完全一致(比如都是3.9)
  • 注意Lambda的大小限制:部署包压缩后不能超过50MB,解压后不超过250MB;层的压缩包不能超过50MB,多个层累加解压后不超过250MB
  • 如果还是报错,可以在Lambda函数的「配置」→「环境变量」里添加PYTHONPATH=/var/task,确保模块路径正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:29:28