在试图找到一种在组织内分发 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
也许对不受信任的要求给出提示?
我们不会删除依赖链接,直到替换它们(PyPI 理解并可以强制您不要上传依赖它们的包)实施。
@dstufft这是什么替代品?
我有两个包 PackageA 和 PackageB 存储在私有 Git 存储库中,以及一个应用程序 App。 App依赖PackageA,PackageA依赖PackageB。 我发现没有办法在安装 App 的要求时自动安装 PackageB 作为 PackageA 的依赖项。
@connorbode如何使用发行版设置 devpi 索引,然后您可以将 pip 指向 devpi 作为索引并且不需要任何依赖项链接,它还会在您的工作网络中镜像/缓存 pypi
最有用的评论
@dstufft这是什么替代品?
我有两个包 PackageA 和 PackageB 存储在私有 Git 存储库中,以及一个应用程序 App。 App依赖PackageA,PackageA依赖PackageB。 我发现没有办法在安装 App 的要求时自动安装 PackageB 作为 PackageA 的依赖项。