概要
uv は、Rust製の超高速なPythonパッケージ・プロジェクトマネージャー。 pip や poetry など複数ツールの機能を一括提供。 10~100倍 の速度やグローバルキャッシュによる効率化。 Pythonバージョン管理 やスクリプト実行もサポート。 クロスプラットフォーム 対応で、簡単インストール可能。
uv:高速Pythonパッケージ&プロジェクトマネージャー
- uv はRustで開発された、Pythonプロジェクト管理のための オールインワンツール
- pip, pip-tools, pipx, poetry, pyenv, twine, virtualenv などの機能を一つに統合
- 10~100倍の高速化 を実現したパッケージ管理
- ユニバーサルロックファイル による一貫した依存関係管理
- スクリプト実行 や インライン依存関係メタデータ のサポート
- Pythonバージョンのインストール・切替 機能
- Pythonパッケージとして公開されたCLIツール の実行・インストール
- pip互換インターフェース で、既存のワークフローを崩さず高速化
- Cargoスタイルのワークスペース による大規模プロジェクト対応
- グローバルキャッシュ でディスク効率と依存関係の重複排除
- RustやPython不要 でcurlやpipから簡単インストール
- macOS, Linux, Windows 対応
- Astral(Ruff開発元) がバックアップ
インストール方法
- スタンドアロンインストーラー によるインストール
- macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh - Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
- macOS/Linux:
- PyPI経由インストール
- pip:
pip install uv - pipx:
pipx install uv
- pip:
- スタンドアロンインストーラー利用時は
uv self updateで自己アップデート可能 - 詳細・他の方法は公式ドキュメント参照
主な機能
-
プロジェクト管理
- 依存関係・環境・ロックファイル・ワークスペース管理
- ryeやpoetryに似た使い勝手
- 例:
uv init exampleでプロジェクト初期化uv add ruffで依存追加&仮想環境構築uv run ruff checkでツール実行uv lockで依存ロックuv syncでロックファイルと環境同期
- uv管理外プロジェクトのビルド・公開もサポート
-
スクリプト管理
- 単一ファイルスクリプトの依存・環境管理
- インラインメタデータで依存宣言
- 例:
uv add --script example.py requestsで依存追加uv run example.pyで仮想環境下でスクリプト実行
-
ツール管理
- Pythonパッケージとして公開されたCLIツールの実行・インストール
- 一時環境での実行(
uvx/uv tool run) - 永続インストール(
uv tool install) - 例:
uvx pycowsay 'hello world!'で即時実行uv tool install ruffでツールインストール&バージョン確認
-
Pythonバージョン管理
- 複数Pythonバージョンのインストール・切替
- 例:
uv python install 3.10 3.11 3.12で複数バージョン導入uv venv --python 3.12.0で指定バージョン仮想環境作成uv run --python pypy@3.8 -- python --versionでPyPy利用uv python pin 3.11でディレクトリ単位のバージョン固定
-
pip互換インターフェース
- pip, pip-tools, virtualenvのコマンド互換
- 追加機能:依存バージョン上書き、プラットフォーム非依存解決、再現性解決
- 例:
uv pip compile docs/requirements.in --universal --output-file docs/requirements.txtで要件ファイル生成uv venvで仮想環境作成uv pip sync docs/requirements.txtで一括インストール
ドキュメント・サポート
- 公式ドキュメント : https://docs.astral.sh/uv
- コマンドラインリファレンス:
uv help - プラットフォーム対応状況、バージョンポリシー、貢献方法、FAQも公式サイト参照
FAQ・その他情報
- uvの発音 : "you - vee"(/juː viː/)
- 表記 :"uv"(小文字)
- 依存解決 :PubGrub方式を採用
- Git実装 :Cargoをベース
- 最適化 :pnpm, Orogene, Bun等から着想
- Windowsサポート :Posyのtrampolineを応用
- ライセンス :Apache 2.0 または MIT(選択可能)
まとめ
- uv はPython開発の生産性と速度を大幅に向上させる 次世代マネージャー
- 既存ツールの置き換え、 高速化、 一貫性のある依存管理 を実現
- インストール・運用が容易 で、幅広いプラットフォームに対応