5

我有 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/"}

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

4

1 回答 1

1

我不确定这是否能解决您的问题,但您可以通过首先创建虚拟环境然后在其中安装两个项目的依赖项来为两个项目使用一个 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
于 2020-02-19T09:17:15.703 回答