Skip to content
Latchkey

PDM vs Poetry: CIに適したPython依存関係ツールはどちら?

PDMはlockfileを備えた標準志向の依存関係マネージャで、Poetryは成熟し広く採用されているデフォルトです。

PDMはPEP 621メタデータを使って依存関係とパッケージングを管理し、lockfileを備え、歴史的にPEP 582 (__pypackages__)を探求してきました。Poetryは最大のエコシステムとドキュメントを持つ、確立されたプロジェクト兼依存関係マネージャです。

PDMPoetry
メタデータ標準PEP 621ネイティブPoetry固有、新しめのPEP 621サポート
Lockfilepdm.lockpoetry.lock
CIでのインストールpdm installpoetry 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も検討しましょう。

関連ガイド