SuperAPI AI 工具集

uv-workspaces

编程与开发

查看项目

更新于 10-16 06:22

技能介绍

该技能用于通过 uv 工作区管理多包 Python 项目(monorepo),适用于需要共享依赖、共享锁文件与成员间依赖的场景。

主要能力:配置根 pyproject.toml 中的 [tool.uv.workspace] members 与 exclude;支持虚拟工作区(根省略 [project] 表,根不作为成员);成员依赖可在 [tool.uv.sources] 中以 { workspace = true } 声明;成员依赖始终为可编辑安装;requires-python 取所有成员交集;根 tool.uv.sources 默认继承到成员,成员按依赖整体覆盖;uv.lock 为整个工作区共享。

常用命令:uv sync;uv sync --all-packages;uv sync --package my-api;uv run --package my-api python script.py;uv lock;uv lock --upgrade-package requests;uv build --package my-core;在成员目录内 uv add requests 或 uv add ../core。默认范围:uv lock 覆盖整个工作区,uv sync 与 uv run 仅根,可用 --package、--all-packages 覆盖;uv build 默认所有成员。Docker 可先 COPY pyproject.toml uv.lock packages/*/pyproject.toml ./ 并执行 uv sync --frozen --no-install-workspace 缓存依赖层,再 COPY . . 与 uv sync --frozen。

限制:成员间出现冲突依赖时不应使用工作区依赖,可改用路径依赖;虚拟工作区下 uv run 与 uv sync 必须指定 --package 或 --all-packages;所有成员的 Python 版本要求需兼容。未提供的定价、平台与更多细节暂未提供。