2017-03-01 13 views
1

numpyをMacにインストールして、AWS Lambdaにアップロードしたときに動作する方法はありますか?私は異なるpipバージョンを使用して、easy_installを使用して、その後にthis postを使用するなど、さまざまな方法を試しましたが、どれもうまくいかないようです。私はまた、そこからGitのレポや建物のクローンを作成しようとしたが、私もそれが仕事を得ることができませんでしたAWS Lambdaで動作するようにnumpyをインストール

I「はエラー(私は私はそれをやった後、右のファイルをコピーしたのかはわからないが)読み込み中:

モジュール 'lambda_function'をインポートできません:マルチアレイ numpy拡張モジュールのインポートに失敗しました。おそらく、num35の失敗したビルド をインポートしようとしている可能性があります。 numpyのgit repoで作業している場合は、 git clean -xdf(バージョン管理下にないすべてのファイルを削除してください)を試してください。 それ以外の場合はnumpyを再インストールしてください。 this postに触発

、私はLinux環境でpip installnumpyすることができたし、それがラムダ上で動作するように取得します。

私の質問は次のとおりです:numpyをMacにインストールしてAWS Lambdaで動作させることは可能ですか?

環境:MacBook Proの、MacOSの10.12.2、デフォルトのPythonのバージョン2.7.10

私はラムダのhello-world-python例にマイナーなバリエーションでそれをテストしてきた:

from __future__ import print_function 
import numpy 

def lambda_handler(event, context): 
    #print("Received event: " + json.dumps(event, indent=2)) 
    print("value1 = " + event['key1']) 

(更新)質問の拡張:なぜいくつかのパッケージは動作し、他のパッケージは動作しませんか?

+1

Amazon Linux用に構築されたバージョンを使用する必要があります。ラムダ展開でMacバイナリをパッケージ化することはできません。 –

+0

ありがとうございます@マークB。なぜそれが 'numpy'の場合で、他のパッケージの場合ではないのか分かりますか? 'numpy'は私がこの問題に取り組んでいる唯一のものです(これまでのところ)。別の方法で尋ねられます - どのパッケージがLinuxビルドを必要とするかを事前に知る方法はありますか? – Tchotchke

答えて

0

@ MarkBのコメントに基づいて作成すると、AWS Lambdaで使用するMacにnumpyを構築することはできません。だから、なぜいくつかのパッケージは動作し、他のパッケージは動作しませんか?

Python拡張モジュール、マークNunnikhovenのブログhereに説明したように、パイソンを延長するか、CまたはC++ ライブラリを呼び出すことができますいずれかのCまたはC++で記述された

です。

これらのモジュールは、使用しているシステムに合わせてコンパイルされ、AWS LambdaはLinux環境であるため、Linux環境に拡張モジュールをインストールする必要があります。

関連する問題