我一直在尝试在导入熊猫的 AWS Lambda 中运行我的代码。所以这就是我所做的。我有一个 python 文件,其中包含如下简单代码(该文件具有 lambda 处理程序)
import json
print('Loading function')
import pandas as pd
def lambda_handler(event, context):
return "Welcome to Pandas usage in AWS Lambda"
- 我已经将这个 python 文件与 numpy、pandas 和 pytz 库一起压缩为部署包(所有这些都在 Amazon EC2 linux 机器中完成)
- 然后将包上传到S3
- 创建了一个 lambda 函数(runtime=python3.6)并从 S3 上传了部署包
但是当我在 AWS Lambda 中测试 lambda 函数时,出现以下错误:
Unable to import module 'lambda_function': Missing required dependencies ['numpy']
我的压缩包中已经有 numpy,但我仍然收到此错误。我试图按照 Pandas & AWS Lambda 给出的提示进行操作,但没有成功。
有没有人遇到同样的问题。将不胜感激解决此问题的任何提示或建议。
谢谢
原文由 Kingz 发布,翻译遵循 CC BY-SA 4.0 许可协议
要在您的 lambda zip 中包含 numpy,请按照 AWS 文档中此页面上的说明进行操作…
如何将带有已编译二进制文件的 Python 包添加到我的部署包并使该包与 AWS Lambda 兼容?
以 numpy 为例解释说明:
在 pypi.org 打开模块页面。 https://pypi.org/project/numpy/
选择下载文件。
下载:
对于 Python 2.7,module-name-version-cp27-cp27mu-manylinux1_x86_64.whl
例如 numpy-1.15.2-cp27-cp27m-manylinux1_x86_64.whl
对于 Python 3.6,module-name-version-cp36-cp36m-manylinux1_x86_64.whl
例如 numpy-1.15.2-cp36-cp36m-manylinux1_x86_64.whl
unzip numpy-1.15.2-cp36-cp36m-manylinux1_x86_64.whl
解压缩 wheel 文件后,您的部署包将与 Lambda 兼容。
希望一切都有意义;)
最终结果可能看起来像这样。注意:您不应在部署包中包含 whl 文件。