gpt4 book ai didi

python pip - 具有本地依赖项的开发模式

转载 作者:太空狗 更新时间:2023-10-30 00:18:32 29 4
gpt4 key购买 nike

背景

我有两个 python 项目。项目 A 和项目 B。

每个项目都有自己的虚拟环境和自己的setup.py。

这两个项目都不是纯 py 文件,并且具有构建扩展、生成源等“构建”过程。

A依赖于B(setup.py install_requires指向B)

每个项目都作为一个轮子构建和发布/分发到 pypi 本地存储库。

项目 A 的 pip install w/wo -e(开发模式),很好地将项目 B 安装到项目 A 的 venv 站 pip 包中。

到目前为止,一切都“按部就类”地运作良好。

现在,我的故事变得复杂了......

我想一起开发这两个项目,而不必发布 B 以便 A 使用它。

例如,我想:

  1. 在 B 中改变一些东西。
  2. 构建 B(setup.py 构建)。
  3. 将 B 作为 wheel 发布到 pypi。
  4. 目标 - 项目 A 将“知道”修改后的项目 B。无需手动调整 sys.path。

其实我也想让项目A的pip install -e在开发模式下安装项目B。

经过一些阅读,我明白(希望是正确的)可以通过 --find-links 标志将“分发”定义为本地源文件夹

我在 --find-links 中定义了项目 B 的根文件夹。

我尝试过(在项目 A setup.py 文件夹中):

  1. pip 安装。 -e --find-links = file:///path/to/B

  2. pip 安装。 -e --find-links = git+file://path/to/B

两者均无效。

顺便说一句,把路径放在B轮或B的蛋上,

例如:pip 安装。 -e --find-links = file:///path/to/B.whl

确实有效,但这不是我要找的。

希望你还和我在一起:-)(抱歉这个乏味的故事)

我错过了什么?

发送

最佳答案

让我试着重述一下问题:

  • 你在两个 python 上工作,包 A 和包 B。A 依赖于 B。
  • 您已选择在不同的虚拟环境中开发这两个包。
  • 您想对包 B 进行一些本地更改,并让包 A 使用包 B 的修改版本。

如果我在这里遗漏了什么,我深表歉意,但为什么不在相同虚拟环境中简单地安装这两个包,这将使这个问题消失?

即创建环境后,以可编辑模式安装包 B,然后安装包 A。B 中的任何更改都将由 A 获取,无需更改。

关于python pip - 具有本地依赖项的开发模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50957833/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com