mcpField
U
uv-project-management

uv-project-management

github.com/laurigates開発59325 回インストール1 日前に更新
リポジトリ

uv-project-management について

uv-project-management は、uv による Python プロジェクト管理のクイックリファレンスです。プロジェクトの作成、依存関係やロックファイルの操作、環境同期、pyproject.toml の設定を扱います。

主な機能

  1. 01Python プロジェクトの初期化
  2. 02依存関係の追加・削除・更新
  3. 03ロックファイルの管理
  4. 04プロジェクト環境の同期
  5. 05pyproject.toml の設定

活用シーン

  1. 01単一パッケージのプロジェクト開始
  2. 02依存関係とロックファイルの更新
  3. 03プロジェクト環境の再現

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/laurigates/claude-plugins --skill uv-project-management

インストール後、Claude Code で/uv-project-managementを入力して読み込まれたか確認します。

同梱ファイルREFERENCE.md

詳細

UV プロジェクト管理

UV のプロジェクト設定、依存関係、ロックファイルに関するクイックリファレンスです。

このスキルを使う場面

このスキルを使う場面...代わりに用途を絞った関連スキルを使う場面...
日常的な依存関係管理で uv init、uv add、uv remove、uv lock、または uv sync を実行するスクリプトまたは単発のコマンドを実行する場合 — uv-run を使います
pyproject.toml の [project] および [tool.uv] セクションを作成または編集するgit/path/editable の依存関係やワークスペースの継承を設定する場合 — uv-advanced-dependencies を使います
新しい単一パッケージの Python プロジェクトを初期設定するリポジトリを複数パッケージのワークスペースに分割する場合 — uv-workspaces を使います

このスキルが適用される場面

  • 新しい Python プロジェクトを初期化する(uv init)
  • 依存関係を追加、削除、または更新する(uv add、uv remove)
  • ロックファイルを管理する(uv lock)
  • プロジェクトの環境を同期する(uv sync)
  • pyproject.toml を設定する

スクリプトの実行については、uv-run スキルを参照してください。

クイックリファレンス

プロジェクトの初期化
# Create new project with complete structure
uv init my-project
cd my-project

# Initialize in existing directory
uv init

# Initialize with specific Python version
uv init --python 3.11 my-app
依存関係の管理
# Add dependencies
uv add requests
uv add 'flask>=2.0'
uv add 'django>=4.0,<5.0'

# Add development dependencies
uv add --dev pytest pytest-cov black

# Add optional dependency groups
uv add --group docs sphinx sphinx-rtd-theme

# Remove dependencies
uv remove requests flask

# Migrate from requirements.txt
uv add -r requirements.txt
ロックファイルの操作
# Create/update lockfile (uv.lock)
uv lock

# Lock with upgraded packages
uv lock --upgrade-package requests
uv lock --upgrade

# Lock without installing (CI/CD)
uv lock --frozen
環境の同期
# Sync environment to lockfile
uv sync

# Sync without updating lockfile
uv sync --frozen

# Error if lockfile is out of date
uv sync --locked

プロジェクト構成

UV プロジェクトは、次の標準的な構成に従います。

my-project/
├── pyproject.toml      # Project metadata and dependencies
├── uv.lock            # Locked dependency versions
├── .venv/             # Virtual environment (auto-created)
├── README.md
└── src/
    └── my_project/
        └── __init__.py

生成される pyproject.toml

[project]
name = "my-project"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
dependencies = []

[build-system]
requires = ["uv_build>=0.9.2,<0.10.0"]
build-backend = "uv_build"

よくあるワークフロー

新しいプロジェクトを開始する
uv init my-app && cd my-app
uv add ruff pytest
uv run pytest
複数の依存関係を追加する
# Production dependencies
uv add fastapi uvicorn 'pydantic>=2.0'

# Development tooling
uv add --dev pytest pytest-cov ruff ty

# Documentation
uv add --group docs sphinx mkdocs-material
依存関係を更新する
# Update specific package
uv lock --upgrade-package requests

# Update all dependencies
uv lock --upgrade

# Sync after update
uv sync

主な機能

  • 高速:pip より 10〜100 倍高速です
  • 決定論的:ロックファイルにより、再現可能なインストールを実現します
  • 自動:仮想環境を作成し、管理します
  • モダン:設定に pyproject.toml を使用します
  • 互換性:pip、Poetry、その他のツールと連携します

関連項目

  • uv-run - スクリプトの実行、一時的な依存関係、PEP 723
  • uv-python-versions - Python インタープリターのバージョン管理
  • uv-workspaces - モノレポおよび複数パッケージのプロジェクト
  • uv-advanced-dependencies - Git、path、制約付きの依存関係
  • uv-tool-management - CLI ツールをグローバルにインストールする
  • python-testing - pytest でテストを実行する
  • python-code-quality - ruff でリンティングとフォーマットを行う

参考資料

コメント