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

时间:2018-06-20 22:16:31

标签: python python-3.x pip setuptools python-wheel

背景

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

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

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

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

每个项目都是以构建pypi本地存储库的方式构建和发布/分发的。

使用项目A的w / wo -e(开发模式)进行pip安装,将项目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. pip install。 -e --find-links = file:/// path / to / B

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

两者均无效。

BTW,放入B轮或B的蛋的路径,

ex: pip install。 -e --find-links = file:///path/to/B.whl

工作了,但这不是我想要的。

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

我想念什么?

Tx

1 个答案:

答案 0 :(得分:0)

让我尝试重述该问题:

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

如果在这里缺少任何内容,我深表歉意,但为什么不简单地在相同虚拟环境中安装两个软件包,这将使这个问题消失呢?

即创建环境后,请以可编辑方式安装程序包B,然后安装程序包A。B中的任何更改都将由A承担,而无需更改。