【ポエトリー】

Poetry(ポエトリー) とは?

💡 Pythonプロジェクトの「詩的な」お世話係
📌 このページのポイント
Poetry の依存管理フロー pyproject.toml プロジェクト設定 依存パッケージ定義 Poetry 依存解決 仮想環境管理 パッケージ公開 poetry.lock バージョン固定 再現性のある環境 従来の方法との比較 従来(pip + venv) requirements.txt + setup.py + setup.cfg 仮想環境は手動で作成・管理 設定ファイルが分散しがち Poetry pyproject.toml に一元化 仮想環境を自動で作成・管理 lockファイルで完全な再現性
Poetryの依存管理フローと従来手法との比較
ひよこ ひよこ

Poetryって名前がおしゃれだけど、pipとは何が違うの?

ペンギン先生 ペンギン先生

pipは単にパッケージをインストールするだけのツールだけど、Poetryは依存関係の解決、仮想環境の管理、パッケージの公開まで全部まとめてやってくれるんだよ。Node.jsでいうnpmみたいな存在だね。

ひよこ ひよこ

pyproject.tomlっていうファイルが大事なの?

ペンギン先生 ペンギン先生

そうだよ。pyproject.tomlにプロジェクト名、バージョン、依存パッケージなどを全部書くんだ。requirements.txtとsetup.pyを別々に管理していた時代と比べると、一つのファイルにまとまって格段にスッキリするんだよ。

ひよこ ひよこ

poetry.lockファイルって何のためにあるの?

ペンギン先生 ペンギン先生

lockファイルは依存パッケージの正確なバージョンを記録しておくためのものだよ。チームメンバー全員が同じバージョンのパッケージを使えるようになるから、「自分の環境では動くのに」問題を防げるんだ。

ひよこ ひよこ

おもしろい!仮想環境も自動で作ってくれるの?

ペンギン先生 ペンギン先生

poetry installを実行するだけで、仮想環境の作成とパッケージのインストールを一気にやってくれるよ。python -m venvで手動作成する手間が省けるんだ。

ひよこ ひよこ

他に似たようなツールってある?

ペンギン先生 ペンギン先生

最近はuvやPDMといった新しいツールも出てきているよ。特にuvRust製で爆速なのが話題だね。ただPoetryはエコシステムが成熟していて情報も多いから、初めてのプロジェクト管理ツールとしては安心感があるんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Poetry」って出てきたら「Python依存関係をきっちり管理してくれる便利ツール」と思えればだいたいOK!
📖 おまけ:英語の意味
「Poetry」 = 詩
💬 「詩のように美しくPythonプロジェクトを管理する」というコンセプトから名付けられたんだよ
← 用語集にもどる