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

Python 如何使用诗歌管理可编辑共享库?,python,git,virtualenv,continuous-deployment,python-poetry,Python,Git,Virtualenv,Continuous Deployment,Python Poetry,我有两个python项目A和B A取决于B B是其他项目使用的共享库 B构建和安装需要很长时间 以前,当我必须在新计算机上设置开发环境时,工作流程是: 创建虚拟环境 git克隆A和B 运行B的安装程序 运行A的安装程序 现在我可以编辑A和B并将更改推送到git,而无需每次都在A和B上重新运行安装程序 现在,我想把诗歌融入我的工作流程。理想情况下,我希望能够git克隆A并运行安装A,并使其镜像我的上述设置,但我在通过A的设置安装B时遇到了问题,同时仍保持B的可编辑性。基于此,在两个项目之间共享

我有两个python项目A和B

  • A取决于B
  • B是其他项目使用的共享库
  • B构建和安装需要很长时间
以前,当我必须在新计算机上设置开发环境时,工作流程是:

  • 创建虚拟环境
  • git克隆A和B
  • 运行B的安装程序
  • 运行A的安装程序
  • 现在我可以编辑A和B并将更改推送到git,而无需每次都在A和B上重新运行安装程序

    现在,我想把诗歌融入我的工作流程。理想情况下,我希望能够
    git克隆A
    并运行
    安装A
    ,并使其镜像我的上述设置,但我在通过A的设置安装B时遇到了问题,同时仍保持B的可编辑性。基于此,在两个项目之间共享venv似乎是不可能的

    我的权宜之计是:

    • git克隆A和B
    • 诗歌安装B
    • 编辑A的pyproject.toml以指向我手动安装的B目录(
      B={path=“../B/”}
    • 诗歌装置
    我真的不喜欢这个工作流,因为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,我可以阻止2安装B,我不确定这是否解决了您的问题,但您可能可以通过先创建虚拟环境,然后在其中安装两个项目的依赖项,将一个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