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

kka*_*bat 5 python git virtualenv continuous-deployment python-poetry

我有 2 个 python 项目 A 和 B

  • A依赖于B
  • B 是一个共享库,被其他项目使用
  • B 构建和安装需要很长时间

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

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

现在我可以编辑 A 和 B 并将更改推送到 git,而不必每次都在 A 和 B 上重新运行安装程序。

现在,我想将诗歌融入我的工作流程中。理想情况下,我希望能够git clone A运行poetry install A并让它镜像我的上述设置,但是我在通过 A 的设置安装 B 的同时仍然保持 B 可编辑时遇到了麻烦。基于这个线程,似乎在两个项目之间共享 venv 是不可能的。

我的权宜之计是:

  • git 克隆 A 和 B
  • 诗歌装置B
  • 编辑A的pyproject.toml指向我手动安装的B目录( B = {path = "../B/"})
  • 诗歌装置A

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

A的pyproject.toml

[tool.poetry.dependencies]
python = "^3.7"
# B = {git = "https://repo.com/myrepo/B.git"}
B = {path = "../B/"}
Run Code Online (Sandbox Code Playgroud)

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

gec*_*kon 3

我不确定这是否能解决您的问题,但您可能可以通过首先创建虚拟环境,然后在其中安装两个项目的依赖项,为两个项目使用一个 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
Run Code Online (Sandbox Code Playgroud)