打包需要 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.
我正在创建和打包 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.