工作区
工作区是一个功能,允许您使用多个相互依赖的包。工作区通过在 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