「なぜ」か(単なるスピードを超えて)

誰もが100倍の高速化について話しますが、uvの真の価値は決定論的単純さです。

  1. ユニバーサルロックファイル:uv.lockはプラットフォームに依存しません。macOSで依存関係を解決し、Linuxコンテナに「解決のずれ」なしでデプロイできます。
     

  2. ツールの自律性:uvxはpipxを置き換えます。CLIツール(ruffやblackなど)を、プロジェクトのpyproject.tomlに含めることなく実行できます。
     

  3. 管理されたランタイム:pyenvや手動でのPythonインストールは不要です。uvはPythonバイナリを直接ダウンロードして管理し、チームのすべての開発者がCPythonのまったく同じパッチバージョンを使用するようにします。

ユニークなワークフロー:「プロジェクトレス」スクリプト

uvの最も過小評価されている機能の1つは、インライン依存関係メタデータ(PEP 723)です。独自の要件を含む単一の.pyファイルを共有できます。

# /// script
# dependencies = ["httpx", "rich"]
# ///
import httpx
from rich import print

print(httpx.get("https://api.github.com").json())

実行方法:uv run script.py

uvは、隠れた一時的な環境を作成し、依存関係をインストールし、スクリプトを1回の操作で実行します。venvのクリーンアップは必要ありません。

本番環境対応戦略

Glintecoのエンタープライズデプロイメントでは、uvを使用してDockerのビルド時間を大幅に短縮しています。

  • レイヤーのトリック:uv pip compileを使用して、requirements.txtをpyproject.tomlから生成して標準的な互換性を確保するか、さらに良いことに、Dockerfileでuvの同期機能を使用します。
     

  • ゼロインストールCI:uvは単一のバイナリであるため、CIランナーにcurlでインストールでき、5秒以内に環境全体を準備できます。もはやpipが「考える」のを待つ必要はありません。

比較:新しい階層

古いツール uvに相当するもの より優れている理由
pip install uv pip install 並列処理、グローバルキャッシュ、reflinkベース。
pyenv install uv python install システムのオーバーヘッドなし。ビルド済みのバイナリをダウンロードします。
pipx run uvx / uv tool run 非常に高速な一時環境の作成。
poetry / pdm uv project 高速な解決と、よりクリーンでユニバーサルなロックファイル。

評決

uvは、単なる高速なpipではありません。Python開発者エクスペリエンスを完全に再構築したものです。Pythonを、ガムテープで固定されたスクリプトのコレクションではなく、プロフェッショナルなエコシステムとして扱っています。

ここから始めましょう:

curl -LsSf https://astral.sh/uv/install.sh | sh