pip install 太慢总是超时?国内镜像源配置的 4 种方法(2026 实测可用)

编程狮(w3cschool.cn) 2026-08-04 16:56:17 浏览数 (50)
反馈

pip install 下载慢、卡住不动、最后报 ReadTimeoutError,解决办法是把默认的 PyPI 官方源换成国内镜像源,加一个 -i 参数就能立刻见效。根本原因不是你的网络坏了,而是 pip 默认连接的服务器在国外,跨境链路带宽有限且不稳定。

本文基于 2026 年 8 月的实测数据写成,测试环境为 Windows 11 与 Ubuntu 22.04、Python 3.14.6、pip 25.x。同一天的实测中,PyPI 官方源拉取 numpy 的索引页 30 秒未能完成,而清华镜像源只用了 555 毫秒。差距不是一点半点。

下面给你四种配置方法,从临时救急到永久生效再到多源容灾,并附上一份实测可用的源清单——网上流传的教程里有不少源已经停止服务了,照抄只会更慢。今天这篇文章,编程狮就把 pip 镜像源这件事一次讲透。

一、pip install 慢的根源:默认源在国外

pip 默认从 PyPI 官方仓库下载包,地址是 https://pypi.org/simple/。这个服务器不在国内,数据要走跨境链路。

镜像源的作用是什么?它是把 PyPI 上的包完整复制一份,放到国内的服务器上,你下载时直接从国内取。内容一致,只是距离近了。

下面是 2026 年 8 月 4 日的实测数据,拉取 numpy 包的索引页(约 1.2 MB):

耗时 结果
腾讯云 548 ms 成功
清华 TUNA 555 ms 成功
阿里云 756 ms 成功
中科大 USTC 1175 ms 成功
PyPI 官方 超过 30000 ms 超时失败

注意最后一行。官方源不是「慢一点」,而是在 30 秒超时窗口内根本没能把这个索引页拉完。这就是为什么你会看到安装超时报错——pip 连包列表都没拿到,谈何下载。

💡 小提示:如果你装的是 numpy、pandas、torch 这类体积大的包,官方源的失败率会更高,因为要传输的数据量更大。

二、方法一:临时指定镜像源,单次安装立即生效

最快的救急方式,在命令后面加 -i 参数指定本次使用的源:

pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple

这条命令只对当前这一次安装生效,不修改任何配置。适合你临时在别人的机器上操作,或者只想装一个包。

如果你用的是 requirements.txt 批量安装,写法一样:

pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/

有些镜像源的 HTTPS 证书在部分环境下会校验失败,报 SSLErrorcertificate verify failed。这时加上 --trusted-host 声明信任该主机:

pip install numpy -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com

--trusted-host 后面填的是域名,不带 https:// 前缀,也不带路径。这是最常见的写错点。

三、方法二与方法三:把镜像源写成永久配置

每次都敲一长串 URL 显然不现实。让配置永久生效有两种写法。

3.1 方法二:用 pip config 命令(推荐)

pip 10.0 以上版本内置了 config 子命令,一行搞定:

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

执行后 pip 会自动找到(或创建)配置文件并写入。想确认是否生效:

pip config list

输出里应该能看到 global.index-url 这一项。想撤销就用 pip config unset global.index-url

这个方法的好处是不用关心配置文件放在哪,pip 自己处理。

3.2 方法三:手动编辑 pip 配置文件

如果你要批量部署多台机器,或者机器上 pip 版本太老不支持 config 命令,就直接写文件。

不同系统的 pip 配置文件路径不一样:

系统 配置文件路径
Windows %APPDATA%\pip\pip.ini
Linux / macOS ~/.config/pip/pip.conf
虚拟环境内 <虚拟环境目录>/pip.conf

Windows 下 %APPDATA% 展开后通常是 C:\Users\你的用户名\AppData\Roaming,这个目录默认隐藏,直接在资源管理器地址栏粘贴 %APPDATA%\pip 就能进去。目录不存在就手动新建。对 Windows 的路径变量和目录结构不熟的话,Windows 教程 里有系统性的说明。

文件内容这样写:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
timeout = 120


[install]
trusted-host = pypi.tuna.tsinghua.edu.cn

Linux 和 macOS 下路径是 ~/.config/pip/pip.conf,内容格式完全相同。用一条命令就能创建:

mkdir -p ~/.config/pip && cat > ~/.config/pip/pip.conf <<'EOF'
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
timeout = 120


[install]
trusted-host = pypi.tuna.tsinghua.edu.cn
EOF

这段命令先建目录,再把配置写进去。~ 代表当前用户的家目录。

⚠️ 注意:虚拟环境内的配置优先级高于用户级配置。如果你在虚拟环境里发现改了全局配置不生效,检查一下环境目录下有没有自己的 pip.conf。

四、方法四:多源容灾与超时参数调优

单一镜像源也会出问题。镜像站维护、同步延迟、临时限流都会让你卡住。

4.1 配置备用源

extra-index-url 可以指定额外的源,主源找不到包时会去备用源查:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
extra-index-url = https://mirrors.cloud.tencent.com/pypi/simple/
                  https://mirrors.aliyun.com/pypi/simple/
timeout = 120
retries = 5


[install]
trusted-host = pypi.tuna.tsinghua.edu.cn
               mirrors.cloud.tencent.com
               mirrors.aliyun.com

多个值换行缩进书写,这是 INI 格式的多值写法。trusted-host 要把所有用到的域名都列上。

⚠️ 注意:extra-index-url 会让 pip 在多个源里搜同名包并选版本最高的。项目依赖私有源时混用有依赖混淆风险,生产环境慎用。

4.2 调大超时与重试

timeout 控制单次连接的等待秒数,默认只有 15 秒;retries 控制失败后重试次数,默认 5 次。装大包时把 timeout 调到 120 秒能显著降低安装超时的概率:

pip install torch --timeout 120 --retries 5

4.3 用环境变量临时覆盖

在 CI 流水线或 Docker 构建里,改配置文件不方便,用环境变量最干净:

export PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
pip install -r requirements.txt

Windows 的命令提示符下写法不同:

set PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
pip install -r requirements.txt

环境变量的优先级高于配置文件,低于命令行参数。规律是:命令行 > 环境变量 > 配置文件。对 export 这类 shell 操作不熟的话,Linux 教程 从文件系统和命令基础讲起。

五、2026 年 8 月实测:哪些镜像源还活着

这一节是本文最需要你留意的部分。很多流传多年的教程还在推荐早已停服的源,照抄反而会让你卡得更久。

以下是 2026 年 8 月 4 日逐个发起请求的实测结果:

镜像源 地址 实测状态
阿里云 https://mirrors.aliyun.com/pypi/simple/ 可用,137 ms
腾讯云 https://mirrors.cloud.tencent.com/pypi/simple/ 可用,227 ms
上海交大 https://mirror.sjtu.edu.cn/pypi/web/simple 可用,232 ms
南京大学 https://mirror.nju.edu.cn/pypi/web/simple 可用,280 ms
中科大 https://pypi.mirrors.ustc.edu.cn/simple/ 可用,453 ms
北京外国语 https://mirrors.bfsu.edu.cn/pypi/web/simple 可用,477 ms
清华 TUNA https://pypi.tuna.tsinghua.edu.cn/simple 可用,576 ms
华为云 https://repo.huaweicloud.com/repository/pypi/simple/ 返回 429 限流
豆瓣 https://pypi.douban.com/simple/ 连接被重置,已不可用
网易 https://mirrors.163.com/pypi/simple/ SSL 握手超时,不可用

三点结论:

  1. 豆瓣源和网易源已经不能用了。豆瓣源当年是最流行的推荐,现在直接连接被重置。你在老教程里看到它,跳过就行。
  2. 华为云返回 429,这是限流响应而非停服,说明地址有效但对高频访问做了限制。个人零星使用大多没问题,批量拉取容易被拒。
  3. 上面那组毫秒数是首次连接的响应耗时,不等于下载速度,且和你的网络环境强相关。建议自己实测一遍再选定。

怎么实测?最简单的办法是给同一个包计时安装:

pip download numpy -d /tmp/test1 -i https://pypi.tuna.tsinghua.edu.cn/simple --no-deps

pip download 只下载不安装,--no-deps 跳过依赖,用来测速最干净。换不同的源跑几次,选最快的那个。常用的 pip 参数记不住时,Python 速查手册 可以直接搭在旁边翻。

六、总结:先换源,再谈其他优化

pip install 安装超时的问题,九成以上都能靠换国内镜像源解决。回到开头的结论:默认源在国外,换成国内镜像源就好了。

你需要带走的四个要点:

  • 临时用 -i 参数,永久用 pip config set,后者一次配置长期有效,不用记 URL。
  • 配置文件路径记牢:Windows 是 %APPDATA%\pip\pip.ini,Linux 和 macOS 是 ~/.config/pip/pip.conf
  • 豆瓣源、网易源已经停止服务,别再照抄老教程。清华镜像源、阿里云镜像、腾讯云都是当前实测可用的选择。
  • 装大包时把 timeout 调到 120 秒,比反复重试有效得多。

下一步该学什么?如果你对虚拟环境、依赖管理这些概念还模糊,建议先把 Python 的包管理体系梳理一遍,这比记住几个地址更有长期价值。

延伸学习

想把 Python 环境与依赖管理这块系统补齐,可以按这个顺序来:

  1. 先过一遍 Python3 教程 的模块与包章节,理解 import 和第三方库的关系;
  2. 想跟着项目动手练,Python 零基础到高薪就业 是边讲边写的形式,环境配置部分讲得比较细;
  3. 不确定后面该学什么方向,Python 开发方向 里有整理好的进阶路径。

常见问题

Q:换了镜像源还是很慢,是怎么回事? A:先确认配置真的生效了,执行 pip config list 看有没有 index-url 那一行。如果配置没问题,可能是你选的源正在同步或被限流,换另一个源试试。还有一种情况是公司或校园网做了代理限制,这时要额外配置 proxy

Q:镜像源上的包会不会比官方少或者版本旧? A:主流镜像源做的是全量同步,包的数量一致,但同步有延迟。清华、阿里云等大站通常在几分钟到半小时内跟上。如果你急需刚发布几分钟的新版本,临时切回官方源装那一个包即可。

Q:报错 certificate verify failed 怎么解决? A:加 --trusted-host 参数,值填域名不带协议头,比如 --trusted-host mirrors.aliyun.com。写进配置文件时放在 [install] 段下。这个报错多见于公司网络做了 HTTPS 中间人代理的环境。

Q:conda 和 pip 的镜像源要分开配置吗? A:要。两者是完全独立的包管理工具,配置文件也不同。conda 的源写在 ~/.condarc 里,pip 配置文件管不到 conda。如果你两个都在用,需要各配一次。

Q:改了配置文件,为什么 pip 还是走老地址? A:按优先级排查。命令行参数最高,其次是环境变量 PIP_INDEX_URL,最后才是配置文件。另外检查你是不是在虚拟环境里——虚拟环境目录下的配置会覆盖用户级配置。

0 人点赞