mcpField
P
python-uv

python-uv

github.com/oakoss開発21123 回インストール12 週間前に更新
リポジトリ

python-uv について

uvでPythonプロジェクト、依存関係、インタープリター、ツールを管理するためのスキルです。プロジェクト作成、再現可能な環境、ワークスペース、スクリプト、パッケージ公開のコマンド例を扱います。

主な機能

  1. 01プロジェクト作成と依存関係管理
  2. 02ロックファイルと環境の同期
  3. 03Pythonバージョン管理
  4. 04スクリプトのインライン依存関係
  5. 05ワークスペースとツール実行
  6. 06パッケージのビルドと公開

活用シーン

  1. 01Pythonプロジェクトの作成
  2. 02CI環境とロックファイルの整合
  3. 03インライン依存関係付きスクリプトの実行
  4. 04モノレポ内の複数パッケージの管理

インストール

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

$npx skills add https://github.com/oakoss/agent-skills --skill python-uv

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
async-patterns.md
cli-applications.md
dependency-management.md
docker-and-publishing.md
fastapi-patterns.md
project-management.md
pydantic-validation.md
python-environments.md
scripts-and-tools.md
structlog-logging.md
testing-patterns.md
type-checking.md
workspaces.md

詳細

Python uv

概要

uv は Rust で記述された非常に高速な Python パッケージおよびプロジェクトマネージャーで、pip、pip-tools、pipx、poetry、pyenv、virtualenv を置き換えるように設計されています。プロジェクト管理、依存関係の解決、Python バージョン管理、ツールの実行を統合して提供し、従来のツールと比べて 10~100 倍の速度向上を実現します。

主な機能: プロジェクトの初期化、依存関係のロックと同期、Python バージョン管理、PEP 723 によるインラインスクリプト依存関係、uvx を使った一時的なツール実行、ロックファイルを共有するモノレポのワークスペース、パッケージのビルドと公開。

使用する場面: Python プロジェクトの初期化、依存関係の管理、仮想環境、Python バージョンの固定、インライン依存関係を含むスクリプトの実行、モノレポのワークスペース、ツールの実行、パッケージの公開。

使用しない場面: Python 以外のプロジェクト、システムレベルのバイナリ依存関係を持つ conda 管理の科学計算環境、従来の setup.py のみを使うワークフローに固定されたプロジェクト。

クイックリファレンス

パターンコマンド/API主なポイント
プロジェクトを初期化uv initpyproject.toml と .python-version を作成します
ライブラリを初期化uv init --libpy.typed を含む src/ レイアウトを作成します
スクリプトを初期化uv init --script example.pyPEP 723 のインラインメタデータスクリプトです
依存関係を追加uv add requestspyproject.toml に追加し、ロックファイルを更新します
開発用依存関係を追加uv add --dev pytest[dependency-groups] の dev グループに追加します
グループ依存関係を追加uv add --group docs mkdocsカスタムの依存関係グループです
オプション依存関係を追加uv add --optional postgres psycopgライブラリ向けのオプションの追加パッケージです
依存関係を削除uv remove requestspyproject.toml とロックファイルから削除します
依存関係をロックuv lockuv.lock を作成/更新します
ロックファイル内をアップグレードuv lock --upgrade-package requests対象を指定して依存関係をアップグレードします
環境を同期uv syncロックされた依存関係を .venv にインストールします
CI 用に同期uv sync --lockedロックファイルが古い場合は失敗します
フローズンで同期uv sync --frozenロックファイルの検証をスキップします
コマンドを実行uv run python app.pyプロジェクトの仮想環境で実行します
スクリプトを実行uv run script.pyPEP 723 のインライン依存関係に対応します
パッケージ内で実行uv run --package api pytestワークスペース固有の実行です
Python をインストールuv python install 3.13Python のバージョンをダウンロードして管理します
Python のバージョンを固定uv python pin 3.12.python-version ファイルを書き込みます
Python の一覧を表示uv python list利用可能なバージョンとインストール済みのバージョンを表示します
ツールを実行uvx ruff check .一時的なツール実行です
プラグイン付きでツールを実行uvx --with mkdocs-material mkdocs追加パッケージを含む一時的なツールです
ツールをインストールuv tool install ruffツールをグローバルに継続してインストールします
ワークスペース[tool.uv.workspace]モノレポの複数パッケージに対応します
パッケージをビルドuv builddist/ に sdist と wheel を作成します
公開uv publishトラステッドパブリッシングで PyPI にアップロードします
依存関係をエクスポートuv export --format requirements-txtロックファイルから requirements.txt を生成します

よくある間違い

間違い正しいパターン
uv プロジェクト内で pip install を使うuv add を使って pyproject.toml 経由で管理する
uv run の前に手動で venv を有効化するuv run が venv の有効化を自動的に処理する
.venv/ をバージョン管理にコミットする.venv/ を .gitignore に追加し、uv.lock をコミットする
uv.lock をコミットしない再現可能なビルドのため、必ず uv.lock をコミットする
CI で --locked を付けずに uv sync を使うuv sync --locked により、ロックファイルと pyproject.toml の一致を保証する
定期的に uv lock --upgrade を実行する意図した場合にのみアップグレードし、対象を絞った更新には --upgrade-package を使う
pip と uv の依存関係管理を混在させるプロジェクトでは一貫してどちらか一方のツールを使う
プロジェクトの依存関係に uv pip install を使う管理対象のプロジェクトでは uv add/uv sync を使う
Docker ビルドで --frozen を付け忘れるuv sync --frozen はロックファイルの検証を省略し、ビルドを高速化する
uv プロジェクトで手動で venv を作成するuv sync が .venv を自動的に作成、管理する
新規プロジェクトに setup.py を使う最新のビルドバックエンドと pyproject.toml を使う
ライブラリで py.typed を使わないuv init --lib に含まれており、型付きパッケージには必須です

委任

  • プロジェクトのひな形作成:Explore エージェントを使います
  • 依存関係の監査:Task エージェントを使います
  • コードレビュー:code-reviewer エージェントに委任します

docker スキルが利用できる場合は、コンテナ化のパターンを委任します。 github-actions スキルが利用できる場合は、CI/CD パイプラインの設定を委任します。 api-testing スキルが利用できる場合は、API テストのパターンを委任します。 sentry-setup-logging スキルが利用できる場合は、エラー監視の設定を委任します。 pino-logging スキルが利用できる場合は、Node.js のログ記録パターンを委任します(Python の同等機能については、ここで structlog を扱います)。

参考資料

コメント