Poetryで依存パッケージを指定ディレクトリに出力する

PythonランタイムのLambda関数を作成する場合には依存パッケージを特定ディレクトリに出力したい。 出力したディレクトリをzipファイルに含めることで依存パッケージを利用することができる。

docs.aws.amazon.com

このPythonプロジェクトでパッケージ管理に単にrequirements.txtを利用している場合は --target オプションを指定すればよい。 指定したディレクトリにダウンロードしたパッケージが保存される。

$ pip install -r requirements.txt --target package

パッケージ管理にPoetryを利用している場合はこのような操作ができない。 Poetryには指定ディレクトリにパッケージを保存するような機能は提供されていない。

github.com

代替手段として、Poetryからrequirements.txtを生成してpipコマンドで指定ディレクトリに保存する。

$ poetry export --format requirements.txt --without-hashes > requirements.txt
$ pip install -r requirements.txt --target ./package