诗歌中的临时演员和团体有什么区别?

问题描述 投票:0回答:3

到目前为止,我已经使用诗歌额外来安装可选的依赖项。例如,在

pyproject.toml
中我定义了

[tool.poetry.dependencies]
...
jupyter = { version = "^1.0.0", optional = true }

[tool.poetry.extras]
notebooks = ["jupyter"...]

然后我可以使用

poetry install -E notebooks
安装可选依赖项。

现在我可以看到诗歌将支持团体。我的直觉是上面的例子可以替换为:

[tool.poetry.group.notebooks.dependencies]
jupyter = "^1.0.0"...

然后用

poetry install --with notebooks
安装。

现在我想知道团体与群众演员有何关系。

  1. 组只是一个语法糖,可以简化可选依赖项的定义吗?
  2. 如果是,临时演员是否会被贬低以支持团体?
  3. 如果不是,它们之间有什么区别以及两者如何共存?
python-poetry
3个回答
11
投票

来自此处的官方文档https://python-poetry.org/docs/managing-dependency/

依赖项组(除了隐式

main
组之外)必须仅包含开发过程中所需的依赖项。只有使用 Poetry 才能安装它们。

要声明一组依赖项,在运行时向项目添加附加功能,请使用 extras。最终用户可以使用

pip
安装附加功能。

因此,如果您打算使用

pip
安装某些内容 - 那么
extras
就是您的选择。

只能使用 Poetry 安装群组。


7
投票

“group”就像你将整个依赖项拆分成多个文件,例如requirements.txt,requirements_test.txt,requirements_doc.txt。你根据需要选择安装哪个requirements文件,这通常发生在开发过程中。

'extra' 类似于您发布的包的功能切换,外部用户根据自己项目的需要选择安装哪些附加功能。

‘group’是为内部开发者设计的,既适用于包开发,也适用于应用程序开发。然而,“extra”是为外部 pypi 用户设计的,它仅适用于包。


6
投票

Poetry 中的依赖项组使您能够将依赖项放在一起,您可能只在开发过程中的某些阶段需要 - 单独安装或与其他组组合安装。

唯一的强制组是“主”组,包含

[tool.poetry.dependencies]
下列出的所有依赖项。此处定义的依赖项在您的库/应用程序运行时需要,而不仅仅是在开发期间。

“Extras”是Python打包中定义可选依赖项的概念,可以定义这些依赖项以在运行时提供可选功能。

由于缺乏替代方案,当使用

setuptools
作为构建后端来定义开发过程中所需的依赖项时,这些额外功能经常被滥用。

© www.soinside.com 2019 - 2024. All rights reserved.