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

Lio*_*hen 6 python pip setuptools python-3.x python-wheel

背景

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

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

这两个项目都不是纯py文件,并且具有"构建"过程,如构建扩展,生成源等.

A依赖于B(B上的setup.py install_requires点).

每个项目都作为一个轮子构建和发布/分发到pypi内部部署存储库.

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

到目前为止,一切都运行良好,"按书".

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

我想一起开发这两个项目,而不必按顺序A发布B来使用它.

例如,我想:

  1. 改变B中的东西.
  2. 构建B(setup.py构建).
  3. 不要将B作为轮子发布到pypi.
  4. 目标 - 项目A将"知道"修改后的项目B. 无需手动调整sys.path.

我实际上想要项目A的pip install -e也可以在开发模式下安装项目B.

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

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

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

  1. 点子安装.-e --find-links = file:/// path/to/B.

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

两者都没用.

BTW,在通往B轮或B蛋的路径中,

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

确实有效,但这不是我想要的.

希望你还在我身边:-)(对于这个乏味的故事感到抱歉)

我错过了什么?

TX

leo*_*irz 1

让我尝试重述一下问题:

  • 您使用两个 python,包 A 和包 B。A 依赖于 B。
  • 您已选择在单独的虚拟环境中开发这两个包。
  • 您希望对程序包 B 进行一些本地更改,并让程序包 A 使用程序包 B 的修改版本。

如果我在这里遗漏了一些东西,我很抱歉,但为什么不简单地将这两个软件包安装在同一个虚拟环境中,这将使这个问题消失呢?

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