关于 uv
一项指导编码 Agent 使用 uv 管理 Python 依赖和环境的技能,适用于相关仓库。内容涵盖项目初始化、依赖变更、锁定与同步,以及在项目环境中运行命令。
主要功能
- 01识别由 uv 管理的项目
- 02初始化 Python 项目
- 03管理虚拟环境
- 04添加和移除依赖
- 05锁定、同步并运行命令
适用场景
- 01创建新的 Python 项目
- 02更新 uv 管理仓库中的依赖
- 03根据 uv.lock 复现环境
- 04在项目环境中运行测试和检查
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ openhands/ extensions --skill uv安装后在 Claude Code 中输入/uv确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.md.plugin/plugin.jsonreferences/README.md详细介绍
uv(Python)
当仓库包含 uv.lock、在文档或 Makefile 中提到 uv,或已使用由 uv 创建的 .venv 时,默认使用 uv 管理 Python 依赖和环境。
快速判断规则
- 如果仓库包含
uv.lock和pyproject.toml:将其视为由 uv 管理的项目。 - 如果仓库只有
requirements.txt:仍可使用uv pip快速安装。 - 优先使用项目命令(
uv add/remove/sync/run/lock),而非直接使用pip,除非仓库明确使用uv pip。
安装(如有需要)
如有可用的打包安装方式,优先使用。如果使用官方安装程序,请先检查它(避免不加审查地直接将内容通过管道传入 shell),并遵循官方文档中的最新说明。
# macOS/Linux (official installer)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell, official installer)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
常见操作
初始化新项目
uv init
# or
uv init my-project
创建 / 使用虚拟环境
uv venv # creates .venv
# If you need a specific version, match the project's declared requirement
# (e.g., pyproject.toml / CI config), not an arbitrary latest version.
uv venv --python 3.x
# optional activation (not required for uv commands)
source .venv/bin/activate # macOS/Linux
# .venv\\Scripts\\activate # Windows
添加 / 移除依赖项(更新 pyproject.toml 和 uv.lock)
uv add requests
uv add 'requests==2.31.0'
uv add -r requirements.txt
uv remove requests
锁定依赖并同步(确保安装可复现)
uv lock # (re)generate uv.lock
uv sync # create/update .venv to match uv.lock
如果拉取了新更改,且 uv.lock 已更改,请运行 uv sync。
在项目环境中运行命令
uv run python -m pytest -q
uv run python main.py
uv run ruff check .
使用 uv 快速替代 pip(requirements 工作流)
uv venv
uv pip install -r requirements.txt
uv pip freeze
uv pip list
注意事项 / 易踩坑
uv通常会自动检测并使用项目根目录中的.venv。- 在 CI / 容器中,你可能会看到
uv pip install --system,但本地开发时优先使用虚拟环境。 - 如果某条命令会修改依赖项,优先使用
uv add/remove/lock/sync,以确保uv.lock保持正确。
评论
支持 Markdown