概要
lambdaで使用するnumpyをレイヤーにしようとした際にエラーになりました。
レイヤーの作成方法に関しては以下の記事に別途記載しておりますので、覗いてみてください。
発生内容
numpyを含んだレイヤーをlambda関数に反映し、テストを実施した時に、以下のエラーが発生しました。
実施バージョンは以下です。
- Python: 3.12
- numpy: 2.0.1
[ERROR] Runtime.ImportModuleError: Unable to import module 'lambda_function': Error importing numpy: you should not try to import numpy from
its source directory; please exit the numpy source tree, and relaunch
your python interpreter from there.
解決
以下のように解決しました。
カスタムレイヤーではなく、ARNレイヤーを使用する。
ARNを指定する。
ここで、ARNは有志の方が作成したものを利用します。
<ページ>:https://github.com/keithrozario/Klayers/?tab=readme-ov-file#list-of-arns
いくつかのライブラリが使用できますので、参考にしてみてください。今回はnumpyを取得してみます。
<ページ>のリンク先に遷移し、READMEのLIS of ARNsを確認します。
Pythonのバージョンを選択します。(今回はPython 3.12)
作成したlambdaがあるリージョンと、好きなARNsを選択します。
今回は東京リージョンなのでap-northeast-1、ARNsはhtmlを選択します。
numpyのarnをコピーします。
lambda関数のページに戻って、arnを貼り付け、追加をクリックします。
テスト再実行
無事にテストが通りました!
最後に
これまで脳死でカスタムレイヤー → zipアーカイブにしていたので新たな方法を発見できて良かったです。エラーは貴重な経験ですね…
ここまでお読みいただきありがとうございました!みなさまのお役に立てれば幸いです。
コメント