移除MinGW路径后系统仍指向旧Python版本的问题求助
Python版本切换异常排查与解决方法
问题描述
- 卸载Python 3.10.9后安装Python 3.11.2,安装时已将其添加至Path环境变量
- 重启后执行
python --version无响应,禁用应用执行别名后命令可运行,但仍显示3.10.9版本 - 执行
where python得到两个路径:C:\msys64\mingw64\bin和C:\Users\USER\AppData\Local\Programs\Python\Python311 - 环境变量中Python311相关路径位于最上方,移除MinGW路径并重启系统后问题依旧
解决步骤
1. 清理旧版本残留文件
- 直接检查
C:\Users\USER\AppData\Local\Programs\Python目录,要是还有Python310文件夹,删掉它 - 顺带检查系统盘根目录、Program Files等位置,把所有Python 3.10.9的残留文件彻底清掉
2. 确认环境变量实际生效
- 开管理员权限的命令提示符,执行
echo %PATH%,仔细看输出的路径顺序,确认Python311的路径是不是真的在所有可能有旧Python的路径前面 - 要是发现旧路径还在,打开「系统属性-高级-环境变量」,把系统变量和用户变量的Path都检查一遍,把旧Python的路径(包括藏起来的)全删掉,确定后重启命令提示符再测
3. 修改注册表的Python关联
- 按
Win+R输regedit开注册表编辑器 - 找
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\python.exe,看默认值是不是指向Python311的python.exe,要是指向旧版本就改成C:\Users\USER\AppData\Local\Programs\Python\Python311\python.exe - 同样检查
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths\python.exe,做一样的修改
4. 强制指定路径测试
- 在命令提示符里直接跑完整路径:
C:\Users\USER\AppData\Local\Programs\Python\Python311\python.exe --version,确认这个路径下的版本是3.11.2 - 要是正常,临时解决的话可以输
doskey python=C:\Users\USER\AppData\Local\Programs\Python\Python311\python.exe $*,当前会话就会用新版本;要永久生效,把这个命令加到用户的autoexec.bat里,或者创建快捷方式时加参数
5. 刷新MSYS2环境缓存
- 用MSYS2的话,它可能缓存了旧环境变量,开MSYS2终端输
echo $PATH看看有没有旧Python路径,输source /etc/profile刷新,或者直接卸载MSYS2里的Python组件(不需要的话)
内容的提问来源于stack exchange,提问作者Vesedon
相关产品推荐
相关产品推荐

