用途:用于搭建现代化 Python monorepo 架构,使用 uv 管理工作区,mise 负责 Python 版本与任务编排,适合需要在一个仓库中维护多个相关包与应用的项目。
主要能力:以 uv workspace 实现类似 npm/pnpm 工作区的能力,包括整个仓库单一锁文件(uv.lock)、共享虚拟环境、跨包依赖解析。目录遵循 apps/(可部署应用)与 packages/(共享库)模式,根目录含 .mise.toml、pyproject.toml 与 uv.lock。
工作区配置:根 pyproject.toml 通过 [tool.uv.workspace] 的 members 指定 apps/* 与 packages/*,并可在 [tool.uv] 的 dev-dependencies 中集中声明 pytest、ruff、basedpyright 等开发工具。包之间按发行版名称互相引用,例如 apps/api 依赖 my-core、my-utils 等。跨包导入直接从工作区包中 import,如 from my_core.entities import User。
依赖方向:apps → packages,packages 之间可互相依赖,但 packages 绝不依赖 apps,并避免循环依赖。
任务与命令:.mise.toml 中可定义 check、lint 等任务,check 依赖 lint、typecheck、test,使用 mise run check 执行。核心 uv 命令包括 uv sync 安装全部包、uv add 将依赖加入指定包、uv add my-core --package my-api 添加工作区包、uv run pytest 运行测试、uv lock --upgrade 更新依赖。
最佳实践:锁文件仅保留在根目录;开发工具集中在根 dev-dependencies;用 mise 固定 Python 版本(如 3.12);应用只依赖包;可选使用命名空间包做逻辑分组。
限制:资料未提供具体收费、授权许可、平台支持范围与性能数据;部分细节需参考 workspace-config.md、docker.md、namespace-packages.md 等引用文档,本处暂未提供其内容。