uv 入門:pip より速い Python パッケージマネージャーの使い方

スポンサーリンク

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 で管理する方法が便利です。