【发布时间】:2018-11-30 03:42:36
【问题描述】:
背景
我有两个 python 项目。项目 A 和项目 B。
每个项目都有自己的虚拟环境和自己的 setup.py。
这两个项目都不是纯 py 文件,并且具有“构建”过程,例如构建扩展、生成源代码等。
A 依赖于 B(setup.py install_requires 点在 B 上)。
每个项目都是作为 pypi 本地存储库的轮子构建和发布/分发的。
项目A的pip install w/wo -e(开发模式),很好地将项目B安装到项目A的venv站点包中。
到目前为止,一切都运行良好并且“按部就班”。
现在,我的故事变得复杂了……
我想一起开发这两个项目,而不必发布 B 以便 A 使用它。
例如,我想:
- 在 B 中更改一些内容。
- 构建 B(setup.py 构建)。
- 不将 B 作为轮子发布到 pypi。
- 目标 - 项目 A 将“知道”修改后的项目 B。无需手动调整 sys.path。
其实我是想让项目A的pip install -e也能在开发模式下安装项目B。
经过一番阅读,我理解(希望是正确的)可以通过 --find-links 标志将“分发”定义为 本地源文件夹。
我在 --find-links 中定义了项目 B 的根文件夹。
我试过了(在项目 A setup.py 文件夹上):
点安装。 -e --find-links = file:///path/to/B
点安装。 -e --find-links = git+file://path/to/B
两者都不起作用。
顺便说一句,在通往B轮或B蛋的路径中,
ex: pip install . -e --find-links = file:///path/to/B.whl
确实有效,但这不是我想要的。
希望你还和我在一起 :-)(对不起这个乏味的故事)
我错过了什么?
发送
【问题讨论】:
-
this question 可能会帮助您...尝试this
pip install git+https://github.com/user/project.git@version或者,如果速度较慢,try installing from zip 您还可以为开发和生产依赖项使用不同的文件,递归安装它们 -
--find-links使pip可以查看带有 tars/eggs/wheels 的目录或带有可下载形式的包链接的 HTML 文件。您不能只将其指向本地项目。 -
Leoschet - 这不能回答我的用例。我的依赖是本地文件夹,而不是远程或 zip。
-
@Phd - 所以没有其他方法可以解决它,只能编写“out of pip”脚本来 pip -e 依赖项或将 b 添加到 sys.path?
-
@hoefling - 谢谢。我希望有办法。顺便说一句,我根本没有设法声明对本地源文件的依赖。我试图将 find-links 指向源 setup.py 文件夹,它只是抱怨在那里找不到分发。我在网上看到的所有例子都是git+http。你知道一个可以做到这一点的工作示例吗?
标签: python python-3.x pip setuptools python-wheel