AWS Lambda导入requests库失败求助:提示找不到requests模块
解决AWS Lambda层中requests模块导入失败的问题
以下是针对该问题的具体解决步骤:
1. 修正层的打包结构(最常见原因)
Lambda运行时只会识别层zip包中python目录下的依赖模块。如果包结构不正确,即使添加了层也无法找到requests。
- 正确的包结构示例:
your-layer.zip └── python ├── requests/ ├── certifi/ ├── charset_normalizer/ └── ...(其他依赖文件) - 错误结构:直接把
requests文件夹打包成zip,未嵌套在python目录下。
2. 重新打包requests依赖
执行以下步骤生成符合要求的层包:
- 创建临时目录并进入:
mkdir lambda_layer && cd lambda_layer - 将requests安装到
python子目录:pip3 install requests -t python/ - 打包
python目录为zip文件:
注意:确保zip包的根目录就是zip -r requests-layer.zip python/python文件夹,不要把外层的lambda_layer目录也打包进去。
3. 匹配运行时Python版本
确保本地pip安装依赖时使用的Python版本,与Lambda函数配置的运行时版本完全一致(比如都是3.9或3.10)。版本不匹配会导致依赖无法被识别。
4. 适配Lambda架构(针对M系列Mac用户)
如果本地机器是M系列芯片(arm架构),而Lambda默认使用x86_64架构,需要指定平台安装兼容的依赖:
pip3 install requests -t python/ --platform manylinux2014_x86_64 --only-binary=:all:
5. 确认Lambda函数关联正确的层
进入Lambda函数控制台,检查:
- 函数的层配置中是否已添加刚生成的
requests-layer.zip - 层的版本是否为最新版本(如果更新过层,需要重新关联最新版本)
内容的提问来源于stack exchange,提问作者Fazalulla
相关产品推荐
相关产品推荐

