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

已安装numpy仍提示缺失依赖,AWS Lambda部署包问题如何解决?

解决AWS Lambda导入numpy依赖失败的问题

看起来你碰到了MacOS打包依赖与Lambda Linux环境不兼容的典型坑——Lambda运行在Amazon Linux 2环境上,你在MacOS用pip安装的numpy是针对Darwin(Mac)架构编译的二进制文件,没法在Linux环境中运行,所以Lambda才会一直提示找不到依赖。下面给你几个可行的解决方案:

方案1:用Docker模拟Lambda环境安装依赖(推荐)

这是最可靠的方式,能确保依赖完全适配Lambda的运行环境:

  • 先安装Docker(如果还没部署的话)
  • 打开终端,进入你的project-dir目录:
    cd ~/Desktop/project-dir
    
  • 拉取对应版本的Lambda Python镜像(比如你用Python 3.9就用public.ecr.aws/lambda/python:3.9),然后在容器内安装依赖:
    docker run -v "$PWD":/var/task public.ecr.aws/lambda/python:3.9 pip install numpy pandas twilio requests -t .
    
  • 安装完成后退出容器,此时project-dir里的依赖就是Linux兼容版本了。

方案2:检查部署包结构

打包时要注意两个细节:

  • 确保Twilio_Alerts_AWS.py和所有依赖文件夹(比如numpy、pandas、twilio)都在zip的根目录,不要把整个project-dir文件夹打包进去——解压zip后应该直接能看到主脚本和依赖文件夹,而不是先看到project-dir再进去找内容。
  • 删除MacOS自动生成的冗余文件,比如.DS_Store,这些文件可能干扰Lambda的依赖加载:
    find . -name ".DS_Store" -delete
    

方案3:修正代码语法错误

另外你的代码有个语法问题,第一行的import语句格式不对:

# 错误写法
from twilio.rest import Client import time import datetime import requests import pandas as pd from pandas.io.json import json_normalize

# 正确写法(每个import单独一行更清晰)
from twilio.rest import Client
import time
import datetime
import requests
import pandas as pd
from pandas.io.json import json_normalize

虽然这不是numpy报错的直接原因,但语法错误会导致Lambda执行失败,建议先修正。

最后重新打包:选中project-dir里的所有文件(不要选文件夹本身),压缩成archive.zip,再上传到S3或直接导入Lambda试试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:28:15