AWS lambda 中的 Pandas 给出了 numpy 错误

新手上路,请多包涵

我一直在尝试在导入熊猫的 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"

  1. 我已经将这个 python 文件与 numpy、pandas 和 pytz 库一起压缩为部署包(所有这些都在 Amazon EC2 linux 机器中完成)
  2. 然后将包上传到S3
  3. 创建了一个 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 许可协议

阅读 659
1 个回答

要在您的 lambda zip 中包含 numpy,请按照 AWS 文档中此页面上的说明进行操作…

如何将带有已编译二进制文件的 Python 包添加到我的部署包并使该包与 AWS Lambda 兼容?

以 numpy 为例解释说明:

  1. 在 pypi.org 打开模块页面。 https://pypi.org/project/numpy/

  2. 选择下载文件。

  3. 下载:

对于 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

  1. 解压 /path/to/project-dir 文件夹中的 wheel 文件。您可以在命令行中使用 unzip 命令来执行此操作。显然还有其他方法。

unzip numpy-1.15.2-cp36-cp36m-manylinux1_x86_64.whl

解压缩 wheel 文件后,您的部署包将与 Lambda 兼容。

希望一切都有意义;)

最终结果可能看起来像这样。注意:您不应在部署包中包含 whl 文件。

它可能看起来像什么

原文由 chim 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题