pip config set global.index-url 是最可靠跨平台改源方式,自动处理路径权限,推荐用于 pip≥21.0;多版本需分别执行对应命令,旧版pip需先升级。

直接用 pip config set global.index-url 命令写入用户配置,是当前最可靠、跨平台、免权限的手动改源方式。其他方法要么容易路径出错,要么在多 Python 版本下失效,要么被系统包管理器覆盖。
用 pip config set 写入用户级配置(推荐)
这是 pip ≥21.0 官方支持的首选方式,自动处理路径、文件创建和权限问题,不需要你手动找 pip.conf 或 pip.ini。
- 执行命令:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple - 若你有多个 Python 版本(如
pip39、pip312),需分别运行对应命令,例如:pip312 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple - 不加
--user也默认写入用户目录;加--global会尝试写系统级配置,Linux/macOS 需sudo,Windows 常因权限失败,不建议 - 如果报错
No such file or directory: '/path/to/pip.conf',说明 pip 太旧,先升级:python -m pip install --upgrade pip
手动建配置文件(仅当 pip config 不可用时)
常见于 CI 环境、老旧 pip(
- Linux/macOS:在
~/.pip/pip.conf中写入[global]index-url = https://mirrors.aliyun.com/pypi/simple/ - Windows:在
%APPDATA%\pip\pip.ini(如C:\Users\用户名\AppData\Roaming\pip\pip.ini)中写入相同内容;若pip文件夹不存在,需手动创建 - 不要往
/etc/pip.conf(Linux)或 Python 安装目录下写——普通用户无权修改,且易被 apt/yum/conda 覆盖
证书错误(SSLError)必须配 trusted-host
清华、阿里等 HTTPS 源在部分网络环境(如企业代理、老旧 OpenSSL)下会校验失败,表现为 Certificate verify failed。这不是源本身问题,而是客户端信任链缺失。
立即学习“Python免费学习笔记(深入)”;
- 每换一个 HTTPS 源,就得加一条对应的
trusted-host:pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn - 豆瓣源用的是 HTTP(
http://pypi.douban.com/simple/),不用配trusted-host,但稳定性略低,不推荐长期使用 - 若同时配置了多个源(如
extra-index-url),每个源的域名都得单独加trusted-host
PyCharm 和虚拟环境是否继承?
是的,但前提是它们调用的 pip 进程读取的是同一个用户配置。这点容易被忽略:
- PyCharm 默认使用系统
pip,只要该pip的用户配置已生效,就自动走镜像源 - 虚拟环境中的
pip默认继承宿主 Python 的用户级配置,无需额外操作;但如果你用venv --system-site-packages或自定义了pip路径,可能绕过配置 - 验证是否生效最简单的方法是:
pip config list输出中应包含global.index-url对应值
最容易被忽略的点是:多 Python 版本共存时,每个 pip 可执行文件都是独立配置主体;改了 pip312 的源,不影响 pip39。别只测一个就以为全好了。


















