如何用诗歌管理可编辑的共享库?

How to manage editable shared libraries with poetry?

我有 2 个 python 项目 A 和 B

以前,当我必须在一台新计算机上设置我的开发环境时,工作流程是:

  1. 创建虚拟环境
  2. git克隆A和B
  3. 运行 B 的设置开发
  4. 运行 A 的设置开发

现在我可以编辑 A 和 B 并将更改推送到 git,而无需每次都在 A 和 B 上重新运行设置。

现在,我想将诗歌融入我的工作流程。理想情况下,我希望能够 git clone A 和 运行 poetry install A 并让它反映我的上述设置,但我无法通过 A 的设置安装 B,同时仍然保持 B 可编辑。基于此 thread 似乎无法在两个项目之间共享 venv。

我的权宜之计是:

我真的不喜欢这个工作流程,因为 A 的 pyproject.toml 现在只能在我的电脑上运行。我查看了问题线程和诗歌文档,但找不到处理这种情况的解决方案。非常感谢任何和所有建议。

A 的 pyproject.toml

[tool.poetry.dependencies]
python = "^3.7"
# B = {git = "https://repo.com/myrepo/B.git"}
B = {path = "../B/"}

编辑:我意识到如果我在 A 之前安装 B 并在安装 A 之前编辑 pyproject,我可以防止 B 的 2 安装

我不确定这是否能解决您的问题,但您可以通过先创建虚拟环境然后在其中安装两个项目的依赖项来为两个项目使用一个 venv(这是您想要的吗?)。

我现在无法验证,但这样的事情可能会有所帮助:

# create the virtual environment and activate  
$ python3 -mvenv .venv
$ . .venv/bin/activate

# install dependencies of both projects in it
$ cd B
$ poetry install
$ cd ../A
$ poetry install