pip install GitHub URL 无法通过 -i 加速,须改用 ghproxy/fastgit 代理、Gitee 同步或本地缓存;git+https 方式需配置 Git 代理而非 pip 参数。

pip install 时如何指定国内镜像源
默认走 GitHub 原始 URL 下载(比如 https://github.com/xxx/yyy/archive/refs/tags/v1.2.3.tar.gz)会极慢甚至超时,根本原因是 pip 默认不走镜像,而 GitHub Release 的压缩包又没被主流镜像站同步。解决思路不是“换镜像”,而是让 pip 把 GitHub 下载请求转给国内代理或镜像服务——但注意:pip install 本身不支持直接镜像 GitHub raw 或 Release 链接,必须绕道。
实操建议:
- 对纯 PyPI 包(如
requests、numpy),用-i指定镜像源即可:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ requests - 对从 GitHub 直接安装的包(如
pip install git+https://github.com/psf/requests.git或pip install https://github.com/psf/requests/archive/refs/tags/v2.31.0.tar.gz),-i参数无效,必须改下载路径本身 - 常见错误:以为加了
-i就能加速 GitHub URL,结果仍卡在Collecting … from https://github.com/…—— 这是 pip 的设计限制,不是网络问题
GitHub URL 下载加速的三种可行方式
核心原则:把原始 GitHub URL 替换成能快速访问的等效地址。不是所有方式都通用,需按场景选:
-
用 fastgit.org 或 ghproxy.com 代理:把
https://github.com/user/repo/archive/refs/tags/v1.0.tar.gz改成https://ghproxy.com/https://github.com/user/repo/archive/refs/tags/v1.0.tar.gz。注意结尾不能多斜杠,且部分代理对带git+的 URL 不稳定 -
用 gitee 同步 + pip 安装:先在 Gitee 创建仓库并导入 GitHub 项目(启用自动同步),再安装 Gitee 地址,例如:
pip install https://gitee.com/username/repo/repository/archive/master.zip。适合长期依赖的库,首次同步有延迟 -
本地缓存 + --find-links:手动下载 tar.gz 或 whl 到本地目录,再用
pip install --find-links ./packages --no-index package_name。适合离线或批量部署,但需自己维护版本一致性
pip install git+https 协议下如何加速 clone
当使用 git+https://github.com/xxx/yyy.git 安装时,pip 底层调用的是 git clone,此时速度瓶颈在 git 协议本身,而非 pip。加速关键在 Git 配置,不是 pip 参数:
使用 `gh` CLI 与 GitHub 交互。通过`gh issue`、`gh pr`、`gh run` 和 `gh api` 管理 issue、PR、CI 运行以及高级查询。
立即学习“Python免费学习笔记(深入)”;
- 设置 Git 使用代理:
git config --global http.proxy http://127.0.0.1:7890(对应你的代理端口);若用 HTTPS,还需git config --global https.proxy http://127.0.0.1:7890 - 禁用 SSL 验证(仅测试环境):
git config --global http.sslVerify false,可跳过证书校验耗时(不推荐生产) - 避免递归子模块(除非必要):
pip install git+https://github.com/xxx/yyy.git#subdirectory=src比完整 clone 快得多 - 常见错误:只配了系统 HTTP 代理但没配 Git 的 proxy,导致
git clone仍直连超时
镜像与代理的兼容性陷阱
很多用户试了多个方案仍失败,往往栽在细节兼容性上:
-
ghproxy.com对含特殊字符(如+、@)的 tag 名或分支名支持不好,例如v1.2.3+build.1可能 404,此时应改用fastgit.org或手动替换为 commit hash - Gitee 同步不会自动拉取 GitHub Release 中的二进制资产(如 prebuilt wheels),只同步代码,若原项目依赖 release 文件,Gitee 方案会失效
- 某些企业网络会拦截或重写
ghproxy.com域名,表现为 DNS 解析失败或返回空白页,此时需换用 IP 直连或本地代理 -
pip install --trusted-host仅解决证书警告,不能加速下载;它和代理/镜像是正交配置,常被误认为可替代
最易被忽略的一点:GitHub 的 /archive/ URL 返回的是 302 重定向到 AWS S3,而多数代理只转发首跳,不跟随重定向,导致下载中断或文件损坏。验证方式是手动 curl -I 原始 URL,看是否出现 Location: 头——如果代理不支持跟随重定向,就得换方案。

















