推荐pip config set命令永久配置,因其是pip≥21.3内置机制,自动处理路径、权限与格式校验;手动建pip.conf易因路径错误、BOM编码或挂载异常失效,且阿里云源在2026年延迟更低、同步更稳,需配对应trusted-host防HTTPS证书校验失败。

直接用 pip config set 命令永久配置,是当前(2026 年)Linux 下最可靠、最省事的方式,不用手动建目录、不担心编码或权限问题。
为什么推荐 pip config set 而不是手动改 pip.conf
因为 pip config 是 pip ≥ 21.3 内置的配置管理机制,能自动处理路径、权限和格式校验。而手动创建 ~/.pip/pip.conf 容易出错:比如文件路径写错(~/.config/pip/pip.conf 和 ~/.pip/pip.conf 都可能被读取,但优先级不同)、UTF-8-BOM 导致解析失败、甚至因用户主目录挂载方式异常导致配置不生效。命令行方式绕过了所有这些不确定性。
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/pip config set global.trusted-host mirrors.aliyun.com
阿里云源在 2026 年多数地区延迟更低、同步更稳;清华源虽常用,但近期偶发目录结构变更引发 404,尤其对带命名空间的包(如 torch 的 nightly 分支)兼容性略差。
trusted-host 必须配,否则 HTTPS 会报 CertificateError
国内镜像源启用 HTTPS 后,pip 默认会校验证书链。但部分镜像域名(如 mirrors.aliyun.com)的证书由中间 CA 签发,老版本 OpenSSL 或某些定制系统环境可能无法完整验证。不加 trusted-host 就会卡在 CertificateError: hostname 'mirrors.aliyun.com' doesn't match...。
- 必须和
index-url的域名保持一致(注意不含https://和路径) - 如果换用清华源,对应写
pypi.tuna.tsinghua.edu.cn,不是https://pypi.tuna.tsinghua.edu.cn - 多个 host 可追加多条:
pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn
验证配置是否真正生效
别只信 pip config list 的输出——它只显示配置项,不保证运行时实际加载。最准的验证方式是看安装时的提示行:
pip install requests
成功时终端第一行应为:
Looking in indexes: https://mirrors.aliyun.com/pypi/simple/
如果还是出现 https://pypi.org/simple,说明配置没被读取,常见原因有:
- 执行
pip config时用了sudo,导致写入了 root 用户的配置,而你日常用普通用户运行 pip - 系统存在多个 pip 配置层级(
global/user/site),低优先级配置覆盖了高优先级的 - 当前 Python 环境是 virtualenv 或 conda 创建的,且 pip 被重新封装过(如某些 Anaconda 版本自带 pip 行为异常)
复杂点在于:镜像源不是“设完就一劳永逸”的开关。有些包(尤其是含 C 扩展的)会从 index-url 拿到 wheel 地址后,再单独发起 HTTP 请求下载二进制文件——这时如果该镜像站没同步对应平台的 wheel,pip 会悄悄 fallback 到官方源,导致部分文件仍慢。所以选源不能只看速度,还得看 wheel 覆盖率和更新及时性。


















