PDM vs Poetry: CIに適したPython依存関係ツールはどちら?
PDMはlockfileを備えた標準志向の依存関係マネージャで、Poetryは成熟し広く採用されているデフォルトです。
PDMはPEP 621メタデータを使って依存関係とパッケージングを管理し、lockfileを備え、歴史的にPEP 582 (__pypackages__)を探求してきました。Poetryは最大のエコシステムとドキュメントを持つ、確立されたプロジェクト兼依存関係マネージャです。
| PDM | Poetry | |
|---|---|---|
| メタデータ標準 | PEP 621ネイティブ | Poetry固有、新しめのPEP 621サポート |
| Lockfile | pdm.lock | poetry.lock |
| CIでのインストール | pdm install | poetry install --no-root |
| pluginエコシステム | 成長中 | 大規模で成熟 |
| 採用 / 馴染み | より小さい | 非常に広く使われている |
CIにおいて
どちらもコミットされたlockfileから決定論的なインストールを提供するため、日々のCIの挙動は似ています: lockをコミットし、それをキーにvenvまたはwheelのcacheをcacheすれば、インストールは再現的になります。PDMは、PEP 621ネイティブのメタデータと、より軽量で標準志向のツールを重視するなら魅力的です。Poetryは、チームの馴染み、既存ガイドの幅広さ、pluginのカバレッジという点で、より安全なデフォルトです。
pipeline向けの選択
標準ネイティブのメタデータとより無駄のないツールが欲しい: PDM。最も文書化され広く知られた選択肢が欲しい: Poetry。生のインストール速度も比較しているなら、両者と並べてuvを評価しましょう。
結論
PEP 621ネイティブの設定と標準志向のマネージャが欲しい: PDM。最も成熟して馴染みのあるエコシステムが欲しい: Poetry。どちらも再現的にlockします - 標準か馴染みかで選び、速度についてはuvも検討しましょう。
関連ガイド
Hatch vs Poetry: Which Python Project Tool for CI?Hatch vs Poetry for Python CI: standards-based config, environments, locking, and builds. Which project manag…
pip vs Poetry: Which Python Dependency Tool for CI?pip vs Poetry for Python CI: lockfiles, reproducibility, install speed, and caching. Which dependency tool gi…
Poetry vs uv: Faster Python Dependency Management in CIPoetry vs uv for Python CI: install speed, lockfiles, and resolver performance. Why uv is often dramatically…