Poetry vs uv: CIでより速いPython依存管理
uv(Astral製)は、Poetryに対するRustベースのより新しい挑戦者であり、CIではその速度差は無視しがたいものです。
どちらもプロジェクトを管理し、依存関係を解決し、lockfileを生成します。uvはRustで書かれ、インストール速度を積極的に最適化します。Poetryは成熟し広く採用された標準です。
| Poetry | uv | |
|---|---|---|
| 実装 | Python | Rust |
| インストール/解決の速度 | 良好 | はるかに速い(しばしば10倍以上) |
| Lockfile | poetry.lock | uv.lock |
| Pythonバージョン管理 | なし(別ツール) | あり、Pythonをインストール可能 |
| 成熟度 / エコシステム | 非常に成熟 | より新しく、急速に成熟中 |
CIでは
uvはPoetryよりはるかに速く依存関係を解決・インストールし、多くのPythonパイプラインで最も遅い部分を短縮します。uvはPythonインタプリタ自体のインストールと固定もでき、別個のセットアップステップを取り除きます。Poetryは、既存のドキュメント、プラグイン、チームの習熟が最も豊富な、安全なデフォルトであり続けます。
移行の労力
uvはpyproject.tomlから取り込むことができ、多くのチームは段階的に採用します(既存のプロジェクト構成を保ちつつ、uvをインストーラとして使う)。複雑な制約がある場合は、リゾルバの挙動が異なることがあるため、解決を注意深くテストしてください。
結論
最速のインストールと組み込みのPython管理が欲しい: uv。今日最も成熟し実戦で鍛えられたエコシステムが欲しい: Poetry。CIのインストール時間がボトルネックなら、評価すべきはuvです。
関連ガイド
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…
How to Cache Dependencies in GitHub Actions (Every Ecosystem)Cache dependencies in GitHub Actions with actions/cache - correct keys and paths for npm, yarn, pnpm, pip, Ma…