3

我正在创建和打包一个 Python (2.7) 程序以在 Amazaon WS 上创建一个 Lambda 函数。我拥有的程序依赖于PySha3 包,它本质上是一个围绕优化的 Sha3 C 包的 Python 包装器。Pysha3 导入一个 C 文件;这两个文件的源代码可以在这个 Github Repository中看到。

为了将包导入 Lambda 平台,必须压缩并上传整个文件和所有依赖项。当我这样做并在上传后尝试测试包时,我收到一个错误,即找不到从 PySha3 包中包含的 C 文件导入的 Sha3 类。由于我自己的研究和故障排除的结果,我决定在我的程序目录的根目录中安装一个 Pysha3 轮,我相信这是正确的举动。但是,当我这样做时,我收到以下错误:

在此处输入图像描述

我真的希望,如果我可以通过安装 C 编译器来正确安装轮子,并且可以以某种方式将 C 编译器与我的程序一起打包,那么 Lambda 就可以工作。我找到了这个 Python 编译器,我希望安装它可以在本地修复我的错误,也许将它包含在 zip 文件中可以修复 Lambda AWS 上的错误。

所以,我的问题是,我的思考过程似乎有效吗?同样,关于如何将编译器包含在压缩文件中以便实际使用的任何提示/指导?我对这一切都很陌生,所以任何事情都会有所帮助。非常感谢!

4

1 回答 1

2

为了为 Lambda 打包二进制文件,您需要在正确的环境中构建任何本机代码。您似乎正在尝试在 Windows 机器上构建——即使您的构建工作正常,生成的二进制文件也不适合 Lambda 执行环境。

当前支持的环境记录在Lambda 执行环境指南中,该指南还指出:

如果您在代码中使用任何本机二进制文件,请确保在此环境中编译它们。

于 2017-01-17T19:34:12.540 回答