用語集 最終更新 2026.08.09

Poetry

Poetry は、Python の依存管理・仮想環境・パッケージ公開をまとめて扱うツールです。 pyproject.tomlロックファイル を軸に、環境を再現できる形で依存を管理します。

pip + venv と何が違うのか

pip は「入れる」だけの道具でした。Poetry はそこに依存解決とロックを足します。

  • 依存解決ライブラリ同士のバージョン要求を突き合わせ、成立する組み合わせを探す
  • ロック:解決した結果を poetry.lock に固定する。別のマシンでも同じ組み合わせが入る

「自分の環境では動くのに他の人の環境で動かない」を減らすのが目的です。piprequirements.txt でも近いことはできますが、依存の依存まで含めて固定する強さが違います。

直接依存と間接依存を分けて書く

pyproject.toml に書くのは自分が直接使うライブラリだけです。その先の依存はロックファイルが持ちます。ここを混同して pip freeze の出力をそのまま pyproject.toml へ貼ると、更新のたびに手作業が発生します。

押さえておきたい注意点

いちばん多いつまずきは、Poetry 自体をプロジェクトの仮想環境の中に入れてしまうことです。Poetry は環境を管理する側なので、管理される側の中に置くと自分自身を壊しかねません。公式のインストーラや pipx を使い、プロジェクトの外に置いてください。

また、依存解決は組み合わせ探索なので、依存が多いプロジェクトでは待ち時間が長くなります。ここが後発の uv が支持を集めた主因のひとつです。

実務で見るポイント

  • ロックファイルは必ずリポジトリにコミットする(しないと存在意義がない)
  • CI では通常のインストールではなくロック内容どおりに入れる手順を使う
  • 2025年3月に PEP 751 が Final となり pylock.toml が標準化されたので、ツール間の移行は今後やりやすくなる