最直接有效的做法是分清临时与永久:临时用pip install -i https://mirrors.aliyun.com/pypi/simple/ 包名;永久用pip config set global.index-url和global.trusted-host两条命令跨平台配置。

pip 切换阿里云镜像源,最直接有效的做法是分清「临时用」和「永久用」——前者不改任何配置,后者只需两条命令,无需手动建文件、找路径。
临时切换:加 -i 参数,一行命令搞定
适合只想这次快一点、不想动系统配置的场景,比如 CI/CD 里跑一次安装,或帮同事临时装个包。
pip install requests -i https://mirrors.aliyun.com/pypi/simple/- 注意末尾斜杠不能少,否则部分旧版
pip会报InvalidURL - 如果提示
WARNING: The repository located at mirrors.aliyun.com is not a trusted host,补上--trusted-host mirrors.aliyun.com - 可同时指定多个包或
-r requirements.txt,只要把-i放在前面就行
永久切换:用 pip config set 命令,跨平台通用
比手动编辑 pip.ini 或 pip.conf 更可靠,Windows/macOS/Linux 全支持,且自动处理路径和文件权限问题。
- 运行这两条命令(顺序无关):
pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/pip config set global.trusted-host mirrors.aliyun.com - 不是
install.trusted-host,新版pip(≥22.2)已统一为global.trusted-host,写错会导致配置不生效 - 执行后配置会写入用户级配置文件(如 macOS 的
~/.config/pip/pip.conf),不影响系统级设置 - 若想验证是否写入成功,运行
pip config list,看到两行输出即表示 OK
遇到 externally-managed-environment 错误时,镜像源不管用
这个错误和镜像源完全无关,是系统 Python 环境被 OS 包管理器(如 apt、dnf、macOS 的 python.org 安装包)锁定导致的。改源不能解决它。
- 不要强行加
--break-system-packages,这是危险操作 - 正确做法是:用
python -m venv myenv创建虚拟环境,再激活后pip install - 如果你用的是 Ubuntu/Debian,系统自带的
/usr/bin/python3就是这种受管环境,别碰它 - Mac 上通过官网下载安装的 Python,默认也不属于系统受管环境,可直接用
镜像源地址细节和常见坑
阿里云地址看似简单,但几个小差异会影响实际使用效果。
- 必须用
https协议,http地址(如旧资料里的http://mirrors.aliyun.com/...)在新版本pip中会被拒绝 - 推荐用
https://mirrors.aliyun.com/pypi/simple/,不是/web/simple/或其他变体 - 清华源地址是
https://pypi.tuna.tsinghua.edu.cn/simple/,注意域名拼写,tuna不是tuna.tsinghua后面多加点 - 如果公司内网拦截了外部域名,
mirrors.aliyun.com可能被墙,此时可临时切豆瓣源:https://pypi.doubanio.com/simple/(HTTP 协议,需额外加--trusted-host pypi.doubanio.com)
global.trusted-host 必须和 index-url 的域名完全匹配,且必须用 HTTPS;一旦不一致,pip 会静默回退到官方源,你却以为“已经切好了”。











