1

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

为了将包导入Lambda平台,必须压缩并上传整个文件和所有依赖关系。当我这样做并尝试在上传后测试软件包时,我得到一个错误,说明从PySha3软件包中包含的C文件导入的Sha3类无法找到。由于我自己的研究和解决问题的结果,我决定在我的程序目录的根目录中安装一个Pysha3轮,我相信这是正确的举措。然而,当我这样做,我得到以下错误:

enter image description here

我真的希望,如果我能得到通过安装一个C编译器正确安装轮能以某种方式包装的C编译器以及我的计划,Lambda将会继续工作。我发现this compiler for Python,我希望安装它会在本地修复我的错误,并且可能将它包括在zip文件中将修复Lambda AWS上的错误。

所以,我的问题是,我的思维过程看起来有效吗?还有,关于如何将编译器包含在压缩文件中以便实际使用它的技巧/指导?我对这一切都很陌生,所以任何事情都会有所帮助。非常感谢你!

回答

1

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

目前支持的环境记录在Lambda Execution Environment指南,该指南也指出:

如果你正在使用你的代码中的任何本地二进制文件,确保他们在这种环境下编译。

+0

非常感谢您提供此信息 - 我会尽力从这里通过它! – Liv

+0

我从软件包网站(https://pypi.python.org/pypi/pysha3)取得编译的二进制文件,在Windows PC上用7z解压缩它,然后将编译的二进制文件添加到我的项目目录中。 使用已编译的Linux二进制文件上传压缩的项目目录!我用pysha3-1.0.2-cp27-cp27m-manylinux1_x86_64.whl – Meir

相关问题