コンパイルされたバイナリを含む Python パッケージをデプロイパッケージに追加し、そのパッケージを Lambda と互換性を持たせるにはどうすればよいですか?

最終更新日: 2019 年 9 月 18 日

pip を使用して、コンパイルされたコードを含む Python パッケージをインストールしましたが、デプロイパッケージが AWS Lambda と互換性がありません。この問題を解決する方法を教えてください。

簡単な説明

NumPy など、コンパイルされたコードを含む Python パッケージがあります。pip install コマンドを使用して、これらのパッケージをインストールできます。

pip install module-name -t /path/to/project-dir

ただし、pip を使用してこれらのパッケージをインストールすると、パッケージはアーキテクチャ用のモジュール名パッケージをダウンロードしてコンパイルします。これにより、Linux オペレーティングシステムでコマンドを実行しない限り、デプロイパッケージは Lambda と互換性がありません。

Lambda と互換性のあるデプロイパッケージを作成するには、wheel(.whl) と呼ばれるプリコンパイル済みパッケージをダウンロードします。pip install を使用する代わりに、/path/to/project-dir で wheel ファイルを解凍します。

解決方法

1.    module-name pypi.org ページを開きます。例:

https://pypi.org/project/numpy/

2.    [Download files] を選択します。

3.    ダウンロード:

  • Python 2.7 の場合、module-name-version-cp27-cp27mu-manylinux1_x86_64.whl
  • Python 3.6 の場合、module-name-version-cp36-cp36m-manylinux1_x86_64.whl

4.    /path/to/project-dir フォルダにある wheel ファイルを解凍します。

wheel ファイルが解凍されると、デプロイパッケージは Lambda と互換性があります。


この記事は役に立ちましたか?

改善できることはありますか?


さらにサポートが必要な場合