2017-10-01 19 views
0

AWS Lambda用のPythonデプロイメントパッケージを作成しようとしています。 pintパッケージはこのpkg_resourcesが必要であることを特定し、デバッグにAWS Lambda + Python - pkg_resourcesというモジュールがありません

No module named pkg_resources 

:私は、作成したラムダ関数をテストしている間、私は次のエラーを取得していますDeployment Package (Python)

の作成時に指定したマニュアルを参照して続いています。 AFAIK、pkg_resourcesは、Pythonディストリビューションのインストール時に作成されます。

私は、Pythonがすでにラムダサーバー上で利用可能であると仮定しているので、pkg_resourcesも持っているはずです。

私はここで何が欠けていますか?誰かが助けてくれますか?

downvotingの前に:この質問に間違ったフォーラムがある場合は、質問にコメントしてください。正しいフォーラムに移動します。

答えて

2

すべてのパッケージが利用可能であることを確認する良い方法は、AWS AMIにすべての依存関係をインストールすることです。ブートストラップでラムダと同じ環境を提供します。この方法で、あなたのシステムにインストールされているAWS AMIのpythonとpythonに含まれていないパッケージを見つけることができます。 serverlessのような、あなたのためのパッケージを作ることができるserverless-python-requirementsのようなプラグインを持っているフレームワークを見たいかもしれません。私は通常venvを作成し、すべてが機能していることを確認します。ここではそれを行う方法を示すlinkです。

1

これは、lambda実行環境にインストールされているすべてのpythonモジュールをリストしたlinkです。このリンクではPython 2.7がリストされていますが、これもPython 3.6でも参照できます。必要なモジュールがこのリストにない場合は、ZIPファイルでパッケージ化できます。

AWS docにはラムダ実行envのためのlist of available librariesが記載されていますが、それはちょうどBoto3パッケージを記述しており、モジュール/依存モジュールを明示的にはリストしていません。

関連する問題