Skip to content
Latchkey

uv vs Poetry: Pythonプロジェクト管理の比較

どちらもプロジェクトを管理し、依存関係を解決し、lockfileを書き出します。uvはより高速で新しく、Poetryは成熟した広くドキュメント化された標準です。

uvとPoetryはどちらも単なるインストールを超えます: プロジェクトをモデル化し、依存関係グラフ全体をロックし、仮想環境を管理します。uv(Rust)は速度に最適化し、Poetryは長年の採用、plugin、エコシステムの馴染みを持ちます。

uvPoetry
言語RustPython
Lockfileuv.lockpoetry.lock
解決/インストール速度非常に高速遅い、特に大きなグラフで
パッケージング/公開uv build / uv publishpoetry build / poetry publish
成熟度 & ドキュメント新しい、急速に進化中成熟、広範なエコシステム

uvが有利な場面

大きな依存関係グラフでは、uvははるかに高速に解決とインストールを行い、これはすべてのCI実行にわたって積み重なります。単一のツールでインストール、ロック、実行、buildをカバーします。pyprojectベースのワークフローはPoetryユーザーに馴染みがあり、移行を容易にします。

Poetryが有利な場面

Poetryには長年の本番利用、豊富なドキュメント、pluginエコシステム、そして多くのチームがすでに標準化している予測可能な動作があります。チーム、ツール、またはCIテンプレートがPoetryを前提としているなら、乗り換えは手間に見合わないかもしれません。Poetryのリゾルバの動作はよく理解され、実戦で鍛えられています。

CIでは

lockfile(uv.lockまたはpoetry.lock)をコミットし、そのハッシュでキャッシュします。uv syncpoetry install --no-rootはどちらも決定論的なインストールを提供します。パイプラインで実感する主な実際的な違いは、実時間(wall-clock)のインストール時間です。

結論

速度と単一の高速なツールチェーンのためにuvを選びます - 特に大規模プロジェクトや忙しいパイプラインで。その成熟度、エコシステム、既存の慣習が速度の利点を上回る場合はPoetryを維持します。どちらも再現可能でlockfile駆動のbuildを生成します。

関連ガイド