uv 入門:pip より速い Python パッケージマネージャーの使い方
uv は Rust 製の高速 Python パッケージマネージャーです。pip・pip-tools・venv の機能をまとめて置き換えられ、インストール速度は pip の 10〜100 倍とされています。
早わかりまとめ
| 操作 | pip | uv |
|---|---|---|
| パッケージインストール | pip install requests |
uv pip install requests |
| 仮想環境作成 | python -m venv .venv |
uv venv |
| requirements.txt から | pip install -r requirements.txt |
uv pip install -r requirements.txt |
| スクリプト実行 | python script.py |
uv run script.py |
| プロジェクト初期化 | — | uv init |
インストール
# macOS / Linux curl -LsSf https://astral.sh/uv/install.sh | sh # Homebrew brew install uv # インストール確認 uv --version
mise を使っている場合は mise 経由でもインストールできます。
mise use --global uv@latest
仮想環境を作る
# .venv ディレクトリに仮想環境を作成 uv venv # Python バージョンを指定する場合 uv venv --python 3.12 # アクティベート(macOS / Linux) source .venv/bin/activate # アクティベート(Windows) .venv\Scripts\activate
パッケージをインストールする
# 単体インストール uv pip install requests # バージョン指定 uv pip install "requests>=2.28" # 複数パッケージ uv pip install requests numpy pandas # requirements.txt から uv pip install -r requirements.txt # インストール済みパッケージ確認 uv pip list
uv run:仮想環境なしでスクリプトを実行する
uv run を使うと、仮想環境を事前に作成しなくてもスクリプトを実行できます。必要なパッケージがなければ自動でインストールします。
# スクリプトを実行(依存パッケージも自動インストール) uv run script.py # 一時的なパッケージを使う uv run --with requests python -c "import requests; print(requests.__version__)"
プロジェクト管理(uv init)
Poetry に近いプロジェクト管理機能もあります。
# プロジェクトを初期化 uv init my-project cd my-project # 依存パッケージを追加 uv add requests # 開発依存を追加 uv add --dev pytest # 依存パッケージを削除 uv remove requests # インストール(uv.lock から再現) uv sync
uv.lock ファイルが生成され、環境を完全に再現できます。
pip との速度比較
# pip time pip install numpy pandas scikit-learn # real 0m18.2s # uv time uv pip install numpy pandas scikit-learn # real 0m1.4s
ダウンロードのキャッシュが効いている場合はさらに高速になります。
mise と組み合わせる
Python バージョン管理を mise、パッケージ管理を uv で分担する構成が現在のスタンダードです。
# mise で Python バージョンを固定 mise use python@3.12 # uv で仮想環境・パッケージ管理 uv venv uv pip install -r requirements.txt
まとめ
| 用途 | コマンド |
|---|---|
| 仮想環境を作る | uv venv |
| パッケージをインストール | uv pip install <package> |
| requirements.txt から | uv pip install -r requirements.txt |
| スクリプトを実行 | uv run script.py |
| プロジェクト初期化 | uv init |
| 依存パッケージを追加 | uv add <package> |
Python のバージョン管理は「mise で Node.js をインストールする方法:.nvmrc の使い方」と同じく mise で管理する方法が便利です。