Python路径优先级问题解决方案核心原因
核心原因:PATH 环境变量的「从上到下检索规则」
where python的输出顺序,就是系统在 PATH 中查找python.exe的优先级顺序—— 系统会从第一条路径开始找,找到第一个匹配的python.exe就会停止检索,这个版本就会成为你输入python时的默认版本。
你当前的输出里,第一条是Python311的路径,因此python --version显示 3.11.9,这是 Windows 系统的正常机制,不是异常。
为什么 Anaconda 的 Python 排在第三位?
你的系统 PATH 中,Python 3.11、Python 3.13 的路径排在 Anaconda 路径的前面,因此优先级更高。常见原因有两个:
- 系统变量 > 用户变量的优先级规则
Windows 的完整 PATH =「系统变量的 Path」 + 「用户变量的 Path」。
如果你把 Anaconda 的路径加到了用户变量的 Path 里,而 Python 3.11/3.13 的路径在系统变量的 Path 里,那么系统永远会先找到系统变量里的 Python,你在用户变量里上移顺序是无效的。
- 同级别 Path 中顺序靠后
如果 Anaconda 和 Python 3.11 都在系统变量的 Path 里,说明你之前的上移操作没有把 Anaconda 的两条路径移到最顶端,Python 3.11 的路径仍然在更靠前的位置。
两种解决办法
方法 1:让 Anaconda 成为全局默认版本(修改系统 PATH 顺序)
如果你希望输入python就默认调用 Anaconda,按以下步骤操作:
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」;
- 在系统变量列表中找到Path,双击编辑;
- 找到下面两条路径,通过「上移」按钮把它们移到列表最顶部:
Plain Text |
- 依次点击所有窗口的「确定」保存;
- 关闭所有已打开的 CMD / 终端,重新打开一个全新的窗口,再次验证:
cmd |
此时第一条路径会变成d:\anaconda\python.exe,默认版本也会同步更新。
方法 2:不修改全局,按需切换版本(更推荐,不污染环境)
不需要调整 PATH 顺序,通过命令直接指定使用哪个版本:
- 调用系统 Python 3.11:py -3.11
- 调用系统 Python 3.13:py -3.13
- 激活 Anaconda 基础环境:
cmd |
激活后当前终端内的python、pip都会自动指向 Anaconda。
补充提醒
where python能列出所有系统可识别的 Python,说明你的路径配置本身是正确的,只是优先级问题。
如果只是做项目开发,更推荐用「激活环境 +python -m pip」的方式,不建议频繁修改系统 PATH 的全局顺序,避免影响其他依赖 Python 的系统软件。