7

我正在运行带有Python 2.7运行时的 AWS Lambda 脚本。但是,每当它初始化时,它就会开始导入grequests库,但由于它依赖于 gevent 而失败:

Gevent is required for grequests.

似乎它成功地找到了 grequests 库(因为它知道它需要 gevent)但失败了。

到目前为止我已经尝试过:

pip install --ignore-installed grequests -t .

pip install --ignore-installed grequests -t ./lib

pip install --ignore-installed gevent -t .

pip install --ignore-installed gevent -t ./lib

然后我按照此处的说明压缩目录的内容并上传到 AWS:http: //docs.aws.amazon.com/lambda/latest/dg/lambda-python-how-to-create-deployment-package。 html

似乎无论我尝试什么,Lambda 都无法找到gevent,但它能够毫无问题地找到其他非默认库。

4

2 回答 2

3

我必须在 Amazon Linux 实例上进行构建geventsrc如果有人需要,我会将生成的文件放入zip其中——只需将它们包含在您上传的 Lambda 中zip,您就应该像老板一样并发。

https://github.com/brandonmp/aws-lambda-grequests

于 2016-12-28T00:40:01.523 回答
3

由于 Gevent 基于libev,它很可能在通过 pip 安装时编译二进制文件。

如果您希望它们在 AWS Lambda 中可执行,则需要确保部署为 Amazon Linux 编译的二进制文件。您可以通过在运行 Amazon Linux 的 EC2 实例上构建部署包来实现这一点。

另请查看此答案本教程

于 2016-04-19T22:43:13.977 回答