gpt4 book ai didi

python - aws lambda 无法导入模块 'lambda_function' : No module named 'requests'

转载 作者:太空狗 更新时间:2023-10-29 21:17:07 24 4
gpt4 key购买 nike

我最近开始使用 AWS Lambda 对我编写的一些 Python 代码使用触发器。我目前有 2 个 lambda 函数,它们都是用 ZIP 文件创建的。我创建的第二个应该用于测试触发事件。

这是出于测试目的,所以我使用的是最好的代码:

def lambda_handler(event, context):
print ("Hello World")

但是,我得到了这个错误:

Response:
{
"errorMessage": "Unable to import module 'lambda_function'"
}

Request ID:
"65024f16-172c-11e8-ab26-27ff3322e597"

Function Logs:
START RequestId: 65024f16-172c-11e8-ab26-27ff3322e597 Version: $LATEST
Unable to import module 'lambda_function': No module named 'requests'

END RequestId: 65024f16-172c-11e8-ab26-27ff3322e597
REPORT RequestId: 65024f16-172c-11e8-ab26-27ff3322e597 Duration: 15.93 ms
Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 22 MB

我到处搜索这个,答案是通过确保函数名称正确或确保 .zip 文件可读来解决的。我已经满足了这两个条件(文件的名称是 lambda_function.py,它在根目录中)。

或者,这似乎是日志的问题。我仔细检查了我的许可,我有能力使用所有资源创建日志。任何其他想法可能是什么问题?

最佳答案

requests 库在 lambda 中默认没有。看起来你正试图将它导入你的函数/库中的某个地方。要导入它,您需要以下行:

from botocore.vendored import requests

或者,您需要将 requests 库压缩到 zip 文件的根目录中。

编辑:您的某个库中可能存在依赖项,可能需要它。要克服这个问题,请在您的应用程序 zip 中安装 requests。为此,请在应用程序的根目录中运行以下命令:pip install requests -t ./

更好的方法是创建一个名为 requirements.txt 的文件并在其中添加所有依赖项。使用 virtualenv 安装 requirements.txt 中定义的所有包:pip install -r requirements.txt -t ./


更新:从 2019 年 10 月 21 日开始,botocore 中请求库的销售版本将被删除。引用this blog post了解更多详情。

关于python - aws lambda 无法导入模块 'lambda_function' : No module named 'requests' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48912253/

24 4 0