正如 poetry 所推荐的,我使用组来处理特定于开发的依赖项(“test”、“docs”和“dev”)。
我会在自动化工具中使用它们,例如 github actions、readthedocs 和 nox,它们更适合 pip 安装。
是否可以像我使用基于 setuptools 的软件包一样从 poetry 安装特定的组?
pip install my_lib[dev]
据我所知,这是不可能的。
[tool.poetry.group]
的pyproject.toml
部分为Poetry专有,其内容不遵循标准规范。从技术上讲,没有什么能阻止任何工具(包括 pip)实现对这个 Poetry 特定功能的支持,但据我所知,没有任何工具实现了这种支持(当然除了 Poetry)。
Poetry自己的文档章节“Managing dependencies”就此事说了以下内容:
依赖组,而不是隐式的
组,必须只包含你在开发过程中需要的依赖。只有使用 Poetry 才能安装它们。main
声明一组依赖项,为 运行时的项目,请改用 extras。最终用户可以使用
安装附加功能。pip
其他工具有自己的方式来处理类似的依赖组概念。例如Hatch和PDM.
您可能有兴趣阅读、关注和权衡这些关于此类依赖组标准化的讨论,以便它们可以被各种工具(可能包括 pip)以可互操作的方式使用: