跳到内容

工作区

工作区是一个功能,允许您使用多个相互依赖的包。工作区通过在 pyproject.toml 中设置 tool.rye.workspace 键来声明。之后,该工作区中的所有项目共享一个虚拟环境。

声明工作区

工作区是在“顶级”pyproject.toml 中声明的。至少需要添加 tool.rye.workspace 键。还建议在 members 键中设置一个 glob 模式,以防止意外将不需要的文件夹作为项目包含。

[tool.rye.workspace]
members = ["myname-*"]

这声明了一个工作区,其中所有以 myname- 开头的文件夹都被视为项目。如果顶级工作区本身不应是一个项目,那么它应该被声明为一个虚拟包。

[tool.rye]
virtual = true

[tool.rye.workspace]
members = ["myname-*"]

有关此内容的更多信息,请参见 虚拟包

同步

在工作区中,无论您使用哪个项目,整个工作区都会始终保持同步。这有一些非典型的后果,但简化了总体开发工作流程。

当一个包依赖另一个包时,它首先在工作区中本地查找,然后再尝试从索引中下载。--all-features 标志会自动应用于所有包,但要打开特定包的功能,功能名称必须加前缀。例如,要启用 myname-bar 包的 foo 额外功能,您需要执行以下操作:

rye sync --features=myname-bar/foo