我正在创建和打包Python(2.7)程序,以在Amazaon WS上创建Lambda函数。我所拥有的程序依赖于PySha3 package,它本质上是围绕优化的Sha3 C包的Python包装器。 Pysha3导入一个C文件;这两个文件的源代码可以在this Github Repository中找到。
为了将包导入Lambda平台,必须压缩和上载整个文件和所有依赖项。当我这样做并尝试在上传后测试包时,我得到一个错误,即无法找到从PySha3包中包含的C文件导入的Sha3类。由于我自己的研究和故障排除,我决定在我的程序目录的根目录中安装一个Pysha3轮,我相信这是正确的举动。但是,当我这样做时,我得到以下错误:
我真的希望如果我可以通过安装C编译器来正确安装,并且可以以某种方式将C编译器与我的程序一起打包,那么Lambda将会工作。我发现this compiler for Python并且我希望安装它会在本地修复我的错误,并且可能将其包含在zip文件中将修复Lambda AWS上的错误。
所以,我的问题是,我的思维过程是否有效?还有关于如何将编译器包含在压缩文件中以便实际使用的任何提示/指导?我对这一切都很陌生,所以一切都会有所帮助。非常感谢你!
答案 0 :(得分:1)
为了为Lambda打包二进制文件,您需要在正确的环境中构建任何本机代码。您似乎正在尝试在Windows机器上构建 - 即使您的构建工作正常,生成的二进制文件也不适合Lambda执行环境。
当前支持的环境记录在Lambda Execution Environment指南中,该指南还指出:
如果您在代码中使用任何本机二进制文件,请确保在此环境中编译它们。