mcpField
P
python-uv

python-uv

github.com/oakoss开发21123 次安装12 周前更新
代码仓库

关于 python-uv

介绍使用 uv 管理 Python 项目、依赖、解释器和工具的技能,提供项目初始化、可复现环境、工作区、脚本及包发布的命令用法。

主要功能

  1. 01初始化项目并管理依赖
  2. 02锁定依赖并同步环境
  3. 03管理 Python 版本
  4. 04为脚本声明内联依赖
  5. 05管理工作区并运行工具
  6. 06构建和发布软件包

适用场景

  1. 01创建 Python 项目
  2. 02在 CI 中按锁文件同步环境
  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 init创建 pyproject.toml 和 .python-version
初始化库uv init --lib创建包含 py.typed 的 src/ 布局
初始化脚本uv init --script example.pyPEP 723 内联元数据脚本
添加依赖uv add requests添加到 pyproject.toml,并更新锁文件
添加开发依赖uv add --dev pytest添加到 [dependency-groups] 的 dev 组
添加组依赖uv add --group docs mkdocs自定义依赖组
添加可选依赖uv add --optional postgres psycopg库的可选额外依赖
移除依赖uv remove requests从 pyproject.toml 和锁文件中移除
锁定依赖uv lock创建或更新 uv.lock
升级锁文件中的依赖uv lock --upgrade-package requests定向升级依赖
同步环境uv sync将锁定的依赖安装到 .venv
为 CI 同步uv sync --locked如果锁文件已过期则失败
冻结模式同步uv sync --frozen跳过锁文件验证
运行命令uv run python app.py在项目虚拟环境中运行
运行脚本uv run script.py支持 PEP 723 内联依赖
在包中运行uv run --package api pytest工作区专属执行
安装 Pythonuv python install 3.13下载并管理 Python 版本
固定 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 build在 dist/ 中创建 sdist 和 wheel
发布uv publish使用可信发布上传到 PyPI
导出依赖uv export --format requirements-txt根据锁文件生成 requirements.txt

常见错误

错误正确做法
在 uv 项目中使用 pip install使用 uv add 通过 pyproject.toml 管理
在运行 uv run 前手动激活 venvuv 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 项目中手动创建 venvuv sync 会自动创建并管理 .venv
为新项目使用 setup.py使用带有现代构建后端的 pyproject.toml
库中未使用 py.typeduv init --lib 会包含该文件;类型化包必须使用它

任务委派

  • 项目脚手架搭建:使用 Explore Agent
  • 依赖审计:使用 Task Agent
  • 代码审查:委派给 code-reviewer Agent

如果有 docker skill,请将容器化模式委派给它。 如果有 github-actions skill,请将 CI/CD 流水线配置委派给它。 如果有 api-testing skill,请将 API 测试模式委派给它。 如果有 sentry-setup-logging skill,请将错误监控设置委派给它。 如果有 pino-logging skill,请将 Node.js 日志记录模式委派给它(本文介绍了 Python 对应方案 structlog)。

参考资料

评论

支持 Markdown