Python開発環境 uvベストプラクティス
uv は Rust で書かれた超高速な Python パッケージマネージャーです。pip の代替として、10倍〜100倍高速な性能を実現し、Python 開発を劇的に効率化します。
Tip
これから Python を学ぶ方や非エンジニアの方には、uv を最初から使うことを強く推奨します。従来の pip よりも圧倒的に速く、依存関係の管理も自動化されています。
📌 なぜ uv を使うのか?
圧倒的な高速性
- pip の 10〜100倍高速なパッケージインストール
- Rust 製でメモリ効率が良く、並列処理に対応
- キャッシュ機能により2回目以降のインストールは瞬時に完了
統合環境管理
- Python バージョン管理機能を内蔵(pyenv 不要)
- 仮想環境の自動作成・管理
- プロジェクトごとの依存関係を自動解決
モダンな開発体験
pyproject.toml
による統一的な設定管理- ロックファイル(
uv.lock
)による再現性の保証 - PEP 723 のインラインメタデータに対応
🚀 インストール方法
macOS / Linux
# 公式インストーラーを使用(推奨)
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows
# winget を使用(推奨)
winget install --id=astral-sh.uv -e
# PowerShell でインストーラーを実行
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
インストール後の確認
Caution
ターミナル(パワーシェル)を閉じて、再度開き直してから、以下を実行してください。
# uvのバージョン確認
uv --version
# 利用可能なPythonバージョンを確認
uv python list
# Python 3.12をインストール(例)
uv python install 3.13
🎯 基本の使い方
3つの基本コマンド
- プロジェクトの作成
新しいプロジェクトを始める時は、必ず専用フォルダを作成します:
# プロジェクトを作成
uv init my_project
# プロジェクトディレクトリへ移動
cd my_project
# ディレクトリ構造を確認
ls -la
これにより以下のファイルが自動生成されます:
pyproject.toml
- プロジェクト設定ファイル.python-version
- Python バージョン指定README.md
- プロジェクト説明
- Pythonスクリプトの実行
重要: Python スクリプトは必ず uv run
で実行します:
# スクリプトを実行(仮想環境を自動作成)
uv run script.py
uv run python script.py
# パッケージ付きスクリプトの実行
uv run --with requests python fetch_data.py
# Jupyter Notebookの起動
uv run --with jupyter jupyter notebook
- パッケージ管理
# パッケージを追加
uv add pandas numpy matplotlib
# 開発用パッケージを追加
uv add --dev pytest black ruff
# パッケージを削除
uv remove pandas
# 依存関係を同期(uv.lockファイルから復元)
uv sync
💡 Claude Code に uv を使わせる
Important
Claude Code で Python プロジェクトを扱う際は、必ず CLAUDE.md
に uv の使用を指示してください。
CLAUDE.md
ファイルに以下の内容を記載します:
# Python Package Management with uv
Use uv exclusively for Python package management in this project.
**IMPORTANT**: This project uses `uv` as the Python package manager. ALWAYS use `uv` instead of `pip` or `python` directly.
## FORBIDDEN COMMANDS - DO NOT USE
DO NOT RUN:
- `python script.py`
- `pip install package`
- `python -m module`
- `pip install -r requirements.txt`
- `chmod +x script.py && ./script.py`
## REQUIRED COMMANDS - ALWAYS USE
INSTEAD, ALWAYS RUN:
- `uv run script.py` (NOT `python script.py`)
- `uv add package` (NOT `pip install package`)
- `uv run -m module` (NOT `python -m module`)
- `uv sync` (NOT `pip install -r requirements.txt`)
## Managing Scripts with PEP 723 Inline Metadata
- Run a Python script with inline metadata: `uv run script.py`
- Add dependencies to script: `uv add package-name --script script.py`
- Remove dependencies from script: `uv remove package-name --script script.py`
設定後、/init
コマンドを実行して Claude Code に認識させます。
📋 よく使うコマンド一覧
カテゴリー | コマンド | 説明 | 使用例 |
---|---|---|---|
環境管理 | uv python list | 利用可能なPythonバージョン一覧 | uv python list --all-versions |
uv python install | 指定バージョンのPythonをインストール | uv python install 3.12 | |
uv python pin | プロジェクトのPythonバージョンを固定 | uv python pin 3.12 | |
プロジェクト | uv init | 新規プロジェクト作成 | uv init my_app |
uv run | スクリプト実行(仮想環境自動作成) | uv run python main.py | |
uv sync | 依存関係を同期 | uv sync --dev | |
パッケージ | uv add | パッケージ追加 | uv add pandas "numpy>=1.20" |
uv remove | パッケージ削除 | uv remove pandas | |
uv pip list | インストール済みパッケージ一覧 | uv pip list --format=json | |
ツール実行 | uv tool run | ツールを一時的に実行 | uv tool run ruff check |
uv tool install | グローバルツールをインストール | uv tool install black | |
スクリプト | uv run --with | 一時的な依存関係付きで実行 | uv run --with requests fetch.py |
uv add --script | スクリプト専用の依存関係追加 | uv add requests --script api.py |
🔧 高度な使い方
PEP 723 インラインメタデータの活用
スクリプトファイル内に依存関係を直接記述できます:
# /// script
# requires-python = ">=3.11"
# dependencies = [
# "requests",
# "pandas>=2.0",
# ]
# ///
import requests
import pandas as pd
# スクリプトの内容
response = requests.get("https://api.example.com/data")
df = pd.DataFrame(response.json())
print(df.head())
実行方法:
uv run script.py # 依存関係が自動インストールされる
マルチプラットフォーム対応
pyproject.toml
でプラットフォーム別の依存関係を定義:
[project]
dependencies = [
"numpy",
"pandas",
]
[tool.uv]
dependencies = [
"pywin32 ; sys_platform == 'win32'",
"pyobjc ; sys_platform == 'darwin'",
]
🔗 参考リンク
まとめ
uv は Python 開発の新しいスタンダードとなりつつあるツールです。特に以下の点で従来のツールを大きく上回ります:
- ✅ 速度: pip の 10〜100倍高速
- ✅ 統合性: Python バージョン管理から仮想環境まで一元管理
- ✅ 信頼性: ロックファイルによる再現性の保証
- ✅ モダン: 最新の Python 標準(PEP)に準拠
今から Python を学ぶなら、最初から uv を使って効率的な開発環境を構築しましょう!
Python uv パッケージマネージャー pip 代替 高速 Rust製 仮想環境 venv pyenv poetry pipenv 依存関係管理 pyproject.toml PEP723 インラインメタデータ Claude Code AI開発