uv-package-manager は何をしますか?
高速なPython依存関係管理、仮想環境、モダンなPythonプロジェクトワークフローのためにuvパッケージマネージャーを習得します。Pythonプロジェクトのセットアップ、依存関係の管理、uvを用いたPython開発ワークフローの最適化に使用します。
概要
uvは、Rustで書かれた非常に高速なPythonパッケージマネージャー兼プロジェクトマネージャーです。従来のpip、pip-tools、pipx、poetry、pyenv、virtualenvなどのツールを置き換えることを目的としています。このスキルは、AIエージェントがuvを使いこなし、Pythonプロジェクトを効率的にセットアップ・管理するためのガイドを提供します。
主な機能
- 高速依存関係解決: 従来のツールよりも10〜100倍高速
- 仮想環境管理: プロジェクトごとの隔離された環境の作成と管理
- プロジェクト管理:
pyproject.tomlベースのモダンなプロジェクト管理 - スクリプト実行:
uv runによる依存関係を含むスクリプトの直接実行 - ツール管理:
uv toolによるPythonツールのグローバルインストールと実行
インストール
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
# pip経由(オプション)
pip install uv
基本的な使い方
プロジェクトの作成
# 新しいプロジェクトを作成
uv init my-project
cd my-project
# 依存関係を追加
uv add requests
# 依存関係を削除
uv remove requests
仮想環境の管理
# 仮想環境を作成
uv venv
# 仮想環境をアクティベート
source .venv/bin/activate # Unix
.venv\Scripts\activate # Windows
# 仮想環境にパッケージをインストール
uv pip install requests
依存関係のインストール
# pyproject.tomlから依存関係をインストール
uv sync
# ロックファイルから正確なバージョンをインストール
uv sync --frozen
スクリプトの実行
# 仮想環境内でスクリプトを実行
uv run python script.py
# 依存関係と一緒にスクリプトを実行(PEP 723)
uv run --with requests python script.py
アドバンスト機能
ツール管理
# ツールをインストール
uv tool install ruff
# ツールを実行
uv tool run ruff check .
# インストール済みのツールを一覧表示
uv tool list
依存関係のエクスポート
# requirements.txt形式でエクスポート
uv export --format requirements.txt > requirements.txt
キャッシュ管理
# キャッシュのクリア
uv cache clean
# キャッシュのサイズを表示
uv cache dir
プロジェクト設定(pyproject.toml)
pyproject.tomlでプロジェクト設定を管理します。
[project]
name = "my-project"
version = "0.1.0"
description = "My awesome Python project"
requires-python = ">=3.9"
dependencies = [
"requests>=2.31.0",
"fastapi>=0.100.0",
]
[project.optional-dependencies]
dev = [
"pytest>=7.4.0",
"ruff>=0.1.0",
]
よく使うコマンド一覧
| コマンド | 説明 |
|---|---|
uv init | 新しいプロジェクトを作成 |
uv add | 依存関係を追加 |
uv remove | 依存関係を削除 |
uv sync | 依存関係をインストール |
uv lock | ロックファイルを生成・更新 |
uv run | 仮想環境内でコマンドを実行 |
uv venv | 仮想環境を作成 |
uv pip | pip互換のインターフェース |
uv tool | グローバルツールを管理 |
uv cache | キャッシュを管理 |
uv export | 依存関係をエクスポート |
uv build | パッケージをビルド |
uv publish | パッケージをPyPIに公開 |
ベストプラクティス
- プロジェクトは常に
uv initで開始する: 適切なプロジェクト構造と設定を自動生成します。 - バージョン管理に
uv.lockを含める: ロックファイルにより、すべての環境で一貫した依存関係バージョンが保証されます。 - 開発依存関係は
pyproject.tomlの[project.optional-dependencies]で管理する: 本番環境と開発環境の依存関係を分離できます。 uv sync --frozenをCI/CDパイプラインで使用する: ロックファイルに基づいて確定的に依存関係をインストールします。- ツールのインストールには
uv toolを使用する: システム全体に影響を与えずにPythonツールを管理できます。
参考リンク
トラブルシューティング
問題: uv: command not found
解決策: uvがPATHに追加されていることを確認してください。インストール後、シェルを再起動するか、source ~/.bashrcまたはsource ~/.zshrcを実行してください。
問題: 依存関係の競合
解決策: uv lockを実行してロックファイルを再生成し、競合を解決します。それでも解決しない場合は、pyproject.tomlでバージョン制約を緩和してください。
問題: 仮想環境が正しくアクティベートされない
解決策: uv venvで作成した仮想環境をアクティベートする前に、カレントディレクトリに.venvフォルダーが存在することを確認してください。シェルによってアクティベートコマンドが異なります。