2016-01-19 17 views
13

Uso di aws lambda Ricevo il seguente errore quando lo script viene eseguito con il modulo numpy:aws - "Impossibile importare il processo 'del modulo: /var/task/numpy/core/multiarray.so: header ELF non valido"

Impossibile importare 'processo' modulo: /var/task/numpy/core/multiarray.so: valida intestazione ELF

è questo problema legato al NumPy stesso o NumPy in particolare su AWS lambda . Cos'è un'intestazione ELF non valida?

Edit:

Credo che questo è legato alla esecuzione di codice nativo, come indicato in questa risposta "invalid ELF header" when using the nodejs "ref" module on AWS Lambda

risposta

14

Il problema ha a che fare con il file multiarray.so che è stata rispettata sul mio computer di locali architettura. Crea un'istanza di ec2 e crea il tuo virtualenv con le dipendenze necessarie. Questo lo farà compilare con l'architettura corretta usata da Aws lambda. Quindi scarica il tuo virtualenv dall'istanza di ec2 e usalo per lambda.

+0

Quindi la soluzione era iniziare con una nuova istanza EC2, creare virtual env, installare numpy e quindi zippare i pacchetti del sito? O hai fatto zip anche di più? – ZJS

+0

Sì, ho anche aggiunto i file compilati che possono essere trovati in/lib64. – Michael

+0

Grazie per l'aiuto, ho appena funzionato! – ZJS