M1 Mac升级pip或装Python包出现scheme值不匹配警告的解决方法
M1芯片Mac下Homebrew版Python3.9的pip路径不匹配警告解决方法
问题根因
- 你当前使用的pip 21.1是Homebrew安装Python3.9时自带的老旧版本,这个版本的pip读取distutils模块记录的安装路径,和Python3.9本身sysconfig模块记录的安装路径对不上。
- 本质差异是Homebrew安装Python3.9时,会把实际的包目录软链接到/opt/homebrew/lib的通用路径下,但老旧的pip版本没有适配这套软链接逻辑,就会弹出一系列路径不匹配的告警。
- 这类告警刚出现时不会直接阻断装包、升级流程,但积累一段时间会出现包装错位置、终端调用命令找不到、pip升级失败的隐性问题。
分步解决操作
- 第一步:绕开老pip自带的错误路径识别逻辑,强制把pip升级到实际生效的安装目录,直接在终端执行:
python3 -m pip install --upgrade pip --target=/opt/homebrew/lib/python3.9/site-packages
这个命令会跳过pip自动识别的冗余framework路径,直接把新版pip装到系统实际加载的site-packages目录,替换掉那个带路径识别bug的老版本pip。 - 第二步:升级完成后校验状态,执行命令:
python3 -m pip --version
只要输出的路径指向/opt/homebrew/lib/python3.9/site-packages下的pip安装目录,且执行过程中不再弹路径不匹配的警告,就说明升级成功。 - 第三步:如果升级完pip还是有残留的路径告警,直接通过Homebrew重装一遍Python3.9做配置对齐,执行命令:
brew reinstall python@3.9
这个操作不会删掉你已经装好的所有第三方Python包,只会重新写入distutils、sysconfig模块的路径配置,清掉旧的framework路径硬编码,让两个模块记录的路径完全统一。
注意事项
- 千万别手动去改两个路径目录下的软链接,Homebrew对Python环境的路径管理有自己的固定规则,手动调整很容易把整个Python环境搞崩。
- 等你把pip版本升到22.0以上,pip本身的路径校验逻辑就会适配Homebrew的软链接规则,这类路径不匹配的警告会自动消失,不需要额外改配置文件。
内容的提问来源于stack exchange,提问作者daquezada
相关产品推荐
相关产品推荐

