スキル一覧に戻る
PovertyAction

uv

by PovertyAction

Template repository for a Stata analysis project.

6🍴 5📅 2026年1月22日
GitHubで見るManusで実行

SKILL.md


name: uv description: This skill should be used when working with Python projects that use uv for package and project management. Use this skill for running Python scripts and CLI tools with uv run, managing dependencies, creating projects, handling virtual environments, and executing commands within isolated project environments. Essential for projects with pyproject.toml files.

uv - Python Package and Project Manager

Contents

Core Concept: uv run

ALWAYS use uv run instead of bare python in uv-managed projects.

uv run automatically:

  • Creates/updates the virtual environment
  • Installs project dependencies
  • Executes commands in isolation
# Run Python scripts
uv run script.py

# Run CLI tools
uv run pytest
uv run ruff check .

# Run Python modules
uv run python -m mymodule

Quick Reference

Essential Commands

TaskCommand
Run scriptuv run script.py
Run CLI tooluv run pytest
Add dependencyuv add requests
Add dev dependencyuv add --dev pytest
Remove dependencyuv remove requests
Sync environmentuv sync
Update dependenciesuv lock --upgrade
Create projectuv init my-project

Decision Tree

Need to...Use
Run code in projectuv run <command>
Add package to projectuv add <package>
Run tool once without installinguvx <tool>
Create new projectuv init [name]
Update all dependenciesuv lock --upgrade
Sync after pulling changesuv sync
Install Python versionuv python install <version>

Common Workflows

1. Create New Project

uv init my-project        # Application
uv init --lib my-library  # Library
uv init                   # In current directory
uv init --python 3.12     # Specify Python version

Creates: pyproject.toml, .python-version, README.md, src/

2. Add Dependencies

uv add requests                    # Runtime
uv add 'httpx>=0.25,<0.27'        # With constraints
uv add --dev pytest pytest-cov    # Development
uv add --optional docs sphinx     # Optional group

3. Run Tests and Tools

uv run pytest
uv run pytest --cov
uv run ruff check .
uv run mypy src/

4. Update Dependencies

uv lock --upgrade               # Upgrade all
uv lock --upgrade-package numpy # Upgrade one
uv sync                         # Apply changes

5. Build and Publish

uv build                        # Build package
uv publish                      # Publish to PyPI

Dependency Management

Adding Dependencies

TypeCommand
Runtimeuv add requests
Developmentuv add --dev pytest
Optional groupuv add --optional docs sphinx
With constraintsuv add 'numpy>=1.20,<2.0'

Temporary Dependencies

Use --with for one-off operations without modifying pyproject.toml:

uv run --with httpx python -c "import httpx"
uv run --with rich --with httpx script.py

Syncing Environment

uv sync              # Sync all
uv sync --no-dev     # Without dev deps
uv sync --all-extras # Include optional groups

Python Version Management

uv python install 3.12    # Install version
uv python list            # List available
uv python pin 3.12        # Pin for project
uv python find            # Find installations

Scripts with Inline Dependencies

Scripts can declare their own dependencies, isolated from the project:

# /// script
# dependencies = [
#   "requests<3",
#   "rich",
# ]
# requires-python = ">=3.12"
# ///

import requests
import rich

Managing Script Dependencies

uv init --script analyze.py --python 3.12   # Create script
uv add --script analyze.py pandas           # Add dependency
uv run analyze.py                           # Run (uses inline deps)
uv lock --script analyze.py                 # Lock dependencies

Note: Scripts with inline metadata ignore project dependencies.

Tools Without Installation

uvx ruff check .          # Run tool ephemerally
uvx black --check .
uv tool install ruff      # Install globally
uv tool list              # List installed tools

Troubleshooting

Command Not Found After uv add

Problem: Added package with CLI, but command doesn't work.

Solution: Use uv run:

uv add ruff
uv run ruff check .  # Not just "ruff check ."

Environment Out of Sync

Problem: Dependencies changed but environment hasn't updated.

Solution:

uv sync

Wrong Python Version

Problem: Project requires different Python.

Solution:

uv python install 3.12
uv python pin 3.12

Script Ignores Project Dependencies

Problem: Script with inline metadata doesn't use project packages.

Solution: This is intentional. Either:

  • Remove inline metadata to use project deps
  • Add needed deps to script's inline metadata

Best Practices

  1. Always use uv run - Don't manually activate venvs
  2. Commit uv.lock - Ensures reproducible builds
  3. Pin Python versions - Use uv python pin
  4. Use --with for experiments - Test deps without modifying pyproject.toml
  5. Use uvx for one-off tools - Don't pollute project deps
  6. Let uv manage envs - Avoid manual pip installs

References

Project References

External Resources

スコア

総合スコア

60/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です