无法为 AWS Lambda 导入 grequests
Unable to import grequests for AWS Lambda
我是 运行 具有 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
,但它能够毫无问题地找到其他非默认库。
由于 Gevent 基于 libev,因此在通过 pip 安装时很可能会编译二进制文件。
如果您希望它们在 AWS Lambda 中可执行,则需要确保您正在部署为 Amazon Linux 编译的二进制文件。您可以通过在 运行 Amazon Linux 的 EC2 实例上构建部署包来实现此目的。
另请查看 and this tutorial。
我必须在 Amazon Linux 实例上从 src
构建 gevent
。如果有人需要,我将生成的文件放在 zip
中——只需将它们包含在您上传的 Lambda zip
中,您应该像老板一样并发。
我是 运行 具有 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
,但它能够毫无问题地找到其他非默认库。
由于 Gevent 基于 libev,因此在通过 pip 安装时很可能会编译二进制文件。
如果您希望它们在 AWS Lambda 中可执行,则需要确保您正在部署为 Amazon Linux 编译的二进制文件。您可以通过在 运行 Amazon Linux 的 EC2 实例上构建部署包来实现此目的。
另请查看
我必须在 Amazon Linux 实例上从 src
构建 gevent
。如果有人需要,我将生成的文件放在 zip
中——只需将它们包含在您上传的 Lambda zip
中,您应该像老板一样并发。