| name | uv Best Practices |
| description | uvパッケージマネージャーの最適活用とワークフロー管理スキル |
| version | 1 |
| tags | ["uv","package-management","workflow","python"] |
uv Best Practices
uvパッケージマネージャーを最大限活用するためのベストプラクティスとワークフロー。
基本ワークフロー
プロジェクト初期化
uv init my-project
cd my-project
uv init --no-readme
uv add --group dev ruff mypy pytest
依存関係管理の最適化
適切なグループ分類
uv add pydantic httpx rich typer
uv add --group dev ruff mypy pytest pytest-cov
uv add --group test pytest-asyncio pytest-mock factory-boy
uv add --group docs mkdocs mkdocs-material
pyproject.tomlでの管理
[dependency-groups]
dev = [
"ruff>=0.1.0",
"mypy>=1.7.0",
"pytest>=7.4.0",
"pytest-cov>=4.1.0",
]
test = [
"pytest-asyncio>=0.21.0",
"pytest-mock>=3.12.0",
"httpx>=0.25.0",
]
docs = [
"mkdocs>=1.5.0",
"mkdocs-material>=9.4.0",
]
パフォーマンス最適化
キャッシュ活用
uv cache info
uv cache clean
uv cache clean requests
並列インストール
uv sync
uv sync --all-groups
uv sync --group dev --group test
仮想環境管理
自動仮想環境
uv venv --python-preference only-managed
uv venv --python 3.12
uv sync
複数環境管理
uv sync --group dev
uv sync --no-dev
uv sync --frozen
バージョン管理戦略
セマンティックバージョニング
[project]
dependencies = [
"pydantic>=2.5.0,<3.0.0",
"httpx>=0.25.0,<0.26.0",
"rich~=13.7.0",
]
ロックファイル管理
uv lock
uv lock --upgrade
uv lock --upgrade-package pydantic
uv lock --check
CI/CDでの活用
GitHub Actions最適化
- name: Install uv
uses: astral-sh/setup-uv@v3
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
- name: Install dependencies
run: uv sync --frozen
- name: Run tests
run: uv run pytest
Dockerfile最適化
FROM python:3.12-slim
# uvインストール
COPY --from=ghcr.io/astral-sh/uv:latest /uv /bin/uv
# プロジェクトファイル
COPY pyproject.toml uv.lock ./
# 依存関係インストール
RUN uv sync --frozen --no-dev
# アプリケーション
COPY src ./src
CMD ["uv", "run", "python", "-m", "myapp"]
トラブルシューティング
よくある問題と解決法
1. 依存関係競合
uv add package-name --verbose
uv tree
uv lock --resolution lowest-direct
2. キャッシュ問題
uv cache clean
uv sync --reinstall
uv sync --offline
3. Python バージョン問題
uv python list
uv python install 3.12
uv python pin 3.12
開発効率化Tips
スクリプト実行
uv run python -m myapp
uv run python -m myapp.server
uv run pytest
uv run pytest --cov
uv run ruff check .
uv run mypy
依存関係分析
uv tree
uv run safety check
uv lock --upgrade --dry-run
開発環境構築自動化
set -e
echo "🚀 開発環境セットアップ開始..."
uv sync --all-groups
uv run pre-commit install
uv run pytest
echo "✅ 開発環境セットアップ完了!"
このスキルにより、uvの強力な機能を最大限活用した効率的な開発環境を構築できます。