出现“read timed out”等问题是因默认连接境外pypi源导致,可通过五种方法优化:一、临时指定国内镜像源;二、永久配置用户级镜像源;三、用pip config命令设置;四、延长超时并增加重试;五、手动下载wheel包离线安装。

如果您执行 pip install 命令时反复出现“Read timed out”“ConnectionError”或长时间卡在“Collecting package”阶段,则大概率是因默认连接境外 PyPI 源(https://pypi.org/simple)导致网络延迟过高或连接被阻断。以下是五种可立即生效的镜像源切换与连接优化技巧:
一、临时指定国内镜像源安装单个包
该方法不修改任何配置文件,仅对当前命令生效,适合快速验证、调试或一次性安装场景,避免全局变更带来的潜在影响。
1、在终端中输入 pip install 命令后,紧跟 -i 参数及镜像源地址。
2、例如安装 numpy:pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple/
3、若提示 SSL 验证失败,需同步添加 --trusted-host 参数:pip install numpy -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn
二、永久配置用户级 pip 镜像源
此方式将镜像源写入当前用户的 pip 配置文件,后续所有 pip install 命令自动使用该源,不影响系统其他账户,安全性与可控性兼备。
1、Windows 用户在资源管理器中打开路径:%APPDATA%\pip\,新建文本文件并重命名为 pip.ini。
2、macOS/Linux 用户在终端中执行:mkdir -p ~/.pip && nano ~/.pip/pip.conf。
3、在文件中写入以下内容(以清华源为例):
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple/
trusted-host = pypi.tuna.tsinghua.edu.cn
三、通过 pip config 命令行工具设置源
利用 pip 内置的配置管理机制,支持 global/user/site 多层级优先级控制,兼容 pip 21.0+ 版本,无需手动编辑文件,降低出错风险。
1、查看当前生效配置:pip config list。
2、为当前用户设置清华镜像源:pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/。
3、添加可信主机白名单:pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn。
四、延长默认超时时间并增加重试次数
当网络存在间歇性抖动但未完全中断时,单纯换源可能仍无法规避超时;此时需调整 pip 的连接等待策略,提升请求韧性。
1、在安装命令中加入 --default-timeout=1000,将超时阈值从默认 15 秒延长至 1000 秒。
2、同时添加 --retries 5 参数,允许 pip 在失败后自动重试 5 次。
3、完整示例:pip install requests --default-timeout=1000 --retries 5 -i https://mirrors.aliyun.com/pypi/simple/。
五、手动下载 wheel 包并离线安装
当镜像源仍不可达、代理策略严格或企业内网完全隔离时,可绕过在线索引解析环节,直接获取预编译包进行本地安装,彻底脱离网络依赖。
1、访问 https://pypi.tuna.tsinghua.edu.cn/simple/包名/ 页面,查找与当前 Python 版本(如 cp311)、系统架构(win_amd64、manylinux_x86_64)匹配的 .whl 文件。
2、右键下载该文件至本地目录,例如:requests-2.31.0-py3-none-any.whl。
3、在终端中执行:pip install ./requests-2.31.0-py3-none-any.whl(路径需替换为实际保存位置)。











