Skip to content
Latchkey

PDM vs uv: 標準準拠のPythonプロジェクトツール

PDMは標準志向のPythonプロジェクトマネージャー、uvはより高速なRustの新参者です。どちらもpyproject.tomlを使い、lockfileを生成します。

PDMはPythonパッケージングのPEPへの準拠を重視し、PEP 582(__pypackages__)を早期にサポートしました。uvは生の速度と統一されたツールチェーンに焦点を当てます。選択はしばしば、標準の純粋さ対パイプラインの速度に帰着します。

PDMuv
言語PythonRust
設定pyproject.tomlpyproject.toml
Lockfilepdm.lockuv.lock
PEP 582 (__pypackages__)サポート焦点ではない
インストール/解決速度良好非常に高速

PDMが有利な場面

PDMはPythonのパッケージング標準を綿密に追い、一部のチームがvirtualenvより好むPEP 582形式のローカルパッケージディレクトリをサポートします。標準との整合性と、拡張できるPythonネイティブのツールを重視するなら、PDMは強力で成熟した選択肢です。

uvが有利な場面

uvは一般に解決とインストールが高速で、Pythonバージョン管理と実行を1つのバイナリにまとめます。インストール時間が繰り返しのコストになるCIでは、uvは通常より多くの実時間を削減します。

CIでは

どちらもlockfileをコミットし、そのハッシュでキャッシュすれば決定論的です。まず標準/機能の適合(例えばPEP 582)を決め、次に速度を決めます: ほとんどのパイプラインではuvが高速で、標準重視のチームにはPDMが魅力的です。

結論

標準への準拠やPEP 582のワークフローが重要ならPDMを選びます。インストール速度と単一の高速なツールチェーンが勝るならuvを選びます。どちらも再現可能でpyprojectベースなので、いずれも正当化できます。

関連ガイド