如何使用诗歌安装子模块的依赖项?

How to install the dependencies of the submodule using poetry?

我有一个使用子模块 my-submodule 的项目 my-project。子模块的依赖项不同于 poetry.lockpyproject.toml 文件中的 my-project

我已经使用 poetry add 安装了 my-project 所需的依赖项。这些 dep 已安装,并在 my-project.

的根文件夹中创建了 poetry.lockpyproject.toml 文件

现在,我也想安装子模块的依赖。假设子模块的路径是path/to/submodule/from/root,我如何安装子模块的依赖项并使这些dep反映在根目录的poetry.lockpyproject.toml文件中?

这里有人问过类似的问题:Manage dependencies of git submodules with poetry,但那里没有提供解决方案。

您可以在父项目的 pyproject.toml 中将子模块声明为 path 依赖项。然后它将子模块视为一个包并将其包含在依赖项 install/resolution 中。声明依赖的时候一定要同时包含develop属性,如下:

[tool.poetry.dependencies]
my-package = { path = "./path/to/submodule/from/root", develop = true }

Link 到文档:https://python-poetry.org/docs/dependency-specification/#path-dependencies