打包需要 C 编译器的 Python 程序

Packaging a Python program that needs to a C compiler

我正在创建和打包 Python (2.7) 程序以在 Amazaon WS 上创建 Lambda 函数。我的程序依赖于 PySha3 package, which is essentially a Python wrapper around the optimized Sha3 C package. Pysha3 imports a C file; the source code of these two files can be seen in this Github Repository.

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

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

那么,我的问题是,我的思考过程是否有效?还有,关于如何将编译器包含在压缩文件中以便实际使用它的任何 tips/guidance?我对这一切都很陌生,所以任何事情都会有所帮助。非常感谢!

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

Lambda Execution Environment 指南中记录了当前支持的环境,该指南还指出:

If you are using any native binaries in your code, make sure they are compiled in this environment.