You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置requirements.txt兼容SSH/HTTPS安装私有Git仓库依赖

解决方案

pip 没有提供单条依赖声明就能自动适配 SSH/HTTPS 两种 GitHub 连接协议的原生语法,但可以通过以下两种成熟方案实现兼容,不需要强制所有安装者使用同一种连接方式:

  • 方案1:基于 Git 原生地址替换规则实现(最推荐,侵入性最低)
    你只需要在 requirements.txt 里统一写任意一种格式的依赖声明即可,比如统一写 HTTPS 格式:

    git+https://github.com/<repo-name>@<version>#egg=<你的包名>
    

    习惯使用 SSH 连接 GitHub 的安装者,只需要在本地执行一次 Git 全局配置:

    git config --global url."git@github.com:".insteadOf "https://github.com/"
    

    配置完成后,Git 拉取所有 GitHub 仓库时会自动把 HTTPS 地址替换为 SSH 地址,pip 安装过程完全无感知,不需要修改 requirements.txt 的内容。
    如果你选择在 requirements.txt 里统一写 SSH 格式的依赖,习惯用 HTTPS 的安装者也可以配置反向替换规则:

    git config --global url."https://github.com/".insteadOf "git@github.com:"
    

    这个方案是目前业内使用最广泛的做法,不需要在依赖文件里写重复内容,也不会给安装者增加多余负担。

  • 方案2:通过环境变量动态适配协议
    你可以在 requirements.txt 里用 pip 支持的环境变量占位符声明依赖:

    git+${GIT_PREFIX}github.com/<repo-name>@<version>#egg=<你的包名>
    

    安装时用户只需要根据自己本地的 GitHub 连接方式传入对应环境变量即可:

    • 用 HTTPS 连接的用户执行:GIT_PREFIX=https:// pip install -r requirements.txt
    • 用 SSH 连接的用户执行:GIT_PREFIX=ssh://git@ pip install -r requirements.txt
      用户也可以把对应的环境变量写到本地 Shell 配置文件里实现全局生效,不需要每次安装都传参。

注意:不要在 requirements.txt 里同时写两种协议的同个依赖条目,否则会造成 pip 重复解析,极易引发版本冲突问题。

内容的提问来源于stack exchange,提问作者pawlick2

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 23:21:35