2017-08-31 1 views
0

Ich arbeite an einer Lambda-Funktion, die teilweise von numpy abhängt. Ich habe ein Deployment-Paket zip mit einem Testskript erstellt, das numpy importiert und dann versucht, zwei Zahlen mit npsubtract zu subtrahieren, da es Probleme hatte, die numpigen Funktionen zu finden.Numpy importiert, aber keine Funktionen in AWS Lambda-Funktion gefunden

import numpy as np 
a = np.subtract(4,2) 
print(a) 

Ich arbeite mit einem Python3.5 virtualenv auf einer Linux-EC2-Instanz. Um die Deployment-Zip zu erstellen, habe ich numpy installiert, mein Skript in Site-Packages platziert und den Inhalt des Ordners gepackt, wie beschrieben here. Ich kann ohne Probleme die Lambda-Funktion aus der Zip-Datei erstellen, aber wenn ich es auslösen, gibt es den Fehler:

module initialization error: module 'numpy' has no attribute 'subtract'

Es scheint numpy zu importieren, aber es kann keine der Funktionen finden . Ich nehme an, dass ich die Bibliotheken/das Skript falsch verpackt habe, aber ich dachte, dass ich die Anweisungen richtig befolgte. Jede Hilfe wäre willkommen!

Antwort

0

Ich denke, Sie müssen das Modul verweisen, wenn Sie es importieren. Ein bisschen Code hilft immer.

import numpy 

a=2 
b=1 
c=numpy.subtract(a,b) 
print c 
+0

Vielleicht wäre es besser, wenn ich es nicht als np referenzieren würde, aber hat es direkt wie du getan? Bearbeitete die Hauptfrage, um den Testcode aufzunehmen. –

+0

Das Paket muss möglicherweise für den Zugriff auf numpy entpackt werden? Funktioniert es lokal, nur nicht auf EC2? – MLMiller

0

Für die Zukunft wurde eine ähnliche Frage here gefragt, und ich war in der Lage, die Lösung für meine Bedürfnisse anzupassen. So verpackte ich die Bibliotheken.