Python開発環境(uv)

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つの基本コマンド

  1. プロジェクトの作成

新しいプロジェクトを始める時は、必ず専用フォルダを作成します:

# プロジェクトを作成
uv init my_project

# プロジェクトディレクトリへ移動
cd my_project

# ディレクトリ構造を確認
ls -la

これにより以下のファイルが自動生成されます:

  • pyproject.toml - プロジェクト設定ファイル
  • .python-version - Python バージョン指定
  • README.md - プロジェクト説明
  1. 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
  1. パッケージ管理
# パッケージを追加
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開発