web-dev-qa-db-ja.com

aws-"モジュール 'プロセス'をインポートできません:/var/task/numpy/core/multiarray.so:無効なELFヘッダー"

Aws lambdaを使用して、numpyモジュールでスクリプトを実行すると、次のエラーが表示されます。

モジュール「プロセス」をインポートできません:/var/task/numpy/core/multiarray.so:無効なELFヘッダー

この問題はnumpy自体に関連していますか、特にawsラムダのnumpyに関連していますか?無効なELFヘッダーとは何ですか?

編集:

この回答に記載されているように、これはネイティブコードの実行に関連していると思います AWS Lambdaでnodejs "ref"モジュールを使用する場合の "無効なELFヘッダー"

17
Michael

問題は、私のローカルコンピュータのアーキテクチャに準拠したmultiarray.soファイルに関係しています。 ec2インスタンスを起動し、必要な依存関係を持つvirtualenvを作成します。これにより、Awsラムダで使用されている正しいアーキテクチャでコンパイルされます。次に、ec2インスタンスからvirtualenvをダウンロードして、ラムダに使用します。

16
Michael

私は同様のエラーがありました:

/var/task/bcrypt/_bcrypt.so: undefined symbol: PyInt_FromLong

以前の答えは私のPyhon:3.6ラムダではうまくいかなかったようです。

私はこの記事を使用して成功しました: https://medium.com/i-like-big-data-and-i-cannot-lie/how-to-create-an-aws-lambda-python-3- 6-deployment-package-using-docker-d0e847207dd6

0
Alexandre Hamon