Ich erstelle und paketiere ein Python (2.7) -Programm, um eine Lambda-Funktion auf Amazaon WS zu erstellen. Das Programm, das ich habe, ist abhängig von der PySha3 package, die im Wesentlichen ein Python-Wrapper um das optimierte Sha3C-Paket ist. Pysha3 importiert eine C-Datei; Der Quellcode dieser zwei Dateien kann in this Github Repository gesehen werden.Verpacken eines Python-Programms, das einen C-Compiler benötigt
Um ein Paket in die Lambda-Plattform zu importieren, müssen die gesamte Datei und alle Abhängigkeiten gezippt und hochgeladen werden. Wenn ich dies tue und versuche, das Paket nach dem Upload zu testen, bekomme ich einen Fehler, dass die Sha3-Klassen, die aus der C-Datei importiert werden, die in PySha3s Paket enthalten ist, nicht gefunden werden können. Als Ergebnis meiner eigenen Recherchen und Fehlerbehebungen habe ich beschlossen, ein Pysha3-Rad im Stammverzeichnis meines Programms zu installieren, von dem ich glaube, dass es der richtige ist. Allerdings, wenn ich dies tun, bekomme ich den Fehler unten:
ich wirklich bin der Hoffnung, dass, wenn ich das Rad bekommen korrekt installieren einen C-Compiler zu installieren und kann irgendwie den C-Compiler-Paket zusammen mit mein Programm, dass der Lambda dann funktioniert. Ich habe this compiler for Python gefunden, und ich hoffe, dass die Installation meinen Fehler lokal behebt, und wenn ich ihn vielleicht in die Zip-Datei einfüge, wird der Fehler in Lambda AWS behoben.
Also, meine Frage ist, scheint mein Denkprozess gültig? Gibt es auch Tipps/Anleitungen, wie man den Compiler in eine gezippte Datei einfügt, damit sie tatsächlich verwendet wird? Ich bin sehr neu in all dem, also wird alles helfen. Vielen Dank!
Vielen Dank für diese Info - ich werde versuchen, von hier aus zu arbeiten! – Liv
Ich nahm die kompilierte Binärdatei von der Paketseite (https://pypi.python.org/pypi/pysha3), entpackte sie mit 7z auf meinem Windows-PC und fügte dann die kompilierten Binärdateien zu meinem Projektverzeichnis hinzu. Upload des gezippten Projektverzeichnisses mit der kompilierten Linux-Binärdatei funktioniert! Ich benutzte pysha3-1.0.2-cp27-cp27m-manylinux1_x86_64.whl – Meir