Pip: 从 git 安装时不要弃用dependency_links 或让pip 使用requirements.txt 文件

创建于 2015-04-02  ·  3评论  ·  资料来源: pypa/pip

在试图找到一种在组织内分发 Python 脚本的轻量级方法时,弃用消息所暗示的使用 pip 的建议情况是荒谬的。

您可以_轻松地_在 git 服务器上分发单个包(大多数组织都有)...但是您不能轻松分发可能依赖于其他一些内部包的包。

如果 pip 删除了 dependency_links 处理,那么这种分发方式将变得完全不可能——对我来说,这与npm类的东西形成鲜明对比,这使得这样做变得非常容易。

当然,不要让它隐含 - 但需要有一种简单的方法,我可以向同事发送单行命令,该命令将 pip 安装一个包含一堆其他 git 依赖项的包。

理想的解决方案是强制 pip 处理来自 git 存储库的requirements.txt文件,因此存储库可以专门定义它的其他要求(因为这是 git 存储库中的库肯定会做的事情)。

完美的应该是这样的:
pip install --follow-requirements git+http://my.internal.gitserver/internallibrary.git

也许对不受信任的要求给出提示?

auto-locked

最有用的评论

@dstufft这是什么替代品?

我有两个包 PackageA 和 PackageB 存储在私有 Git 存储库中,以及一个应用程序 App。 App依赖PackageA,PackageA依赖PackageB。 我发现没有办法在安装 App 的要求时自动安装 PackageB 作为 PackageA 的依赖项。

所有3条评论

我们不会删除依赖链接,直到替换它们(PyPI 理解并可以强制您不要上传依赖它们的包)实施。

@dstufft这是什么替代品?

我有两个包 PackageA 和 PackageB 存储在私有 Git 存储库中,以及一个应用程序 App。 App依赖PackageA,PackageA依赖PackageB。 我发现没有办法在安装 App 的要求时自动安装 PackageB 作为 PackageA 的依赖项。

@connorbode如何使用发行版设置 devpi 索引,然后您可以将 pip 指向 devpi 作为索引并且不需要任何依赖项链接,它还会在您的工作网络中镜像/缓存 pypi

此页面是否有帮助?
0 / 5 - 0 等级