如何使用 Poetry 在 monorepo 中重用 pyproject.toml?

nor*_*ree 23 python monorepo python-poetry pyproject.toml

我的 monorepo 中有多个项目,它们分别通过 Poetry 进行包管理。例如,

\n
monorepo\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 a\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 pyproject.toml\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 b\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 pyproject.toml\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 c\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 pyproject.toml\n
Run Code Online (Sandbox Code Playgroud)\n

每个项目都有自己的[tool.poetry.dependencies]和会话[tool.poetry.dev-dependencies]。然而,他们确实共享了大量的通用配置,例如

\n
    \n
  • [工具.taskipy.任务]
  • \n
  • [工具.isort]
  • \n
  • [工具.黑色]
  • \n
  • ...
  • \n
\n

我的问题是如何定义可重用于 monorepo 项目的通用配置?

\n

小智 0

请参阅此讨论_ https://github.com/python-poetry/poetry/issues/2270

您可以通过使用 virtualenvs.create false 为每个子包创建本地配置 (poetry.toml) 来做到这一点。然后,您可以按照 @fredrikaverpil 的建议将子包标记为依赖项,并将它们包含为包。