Python多版本冲突问题的解决过程
作者:小北编程
Python 多版本冲突解决记录
最近遇到一个 Python 版本冲突问题:
一开始我手动安装了 Python 3.14(最新版本),但是在启动一些项目时出现兼容性问题,因此想切换到 Python 3.11。
于是通过 Homebrew 安装:
brew install python@3.11
但是安装完成后,在终端查询 Python 版本时,发现一直显示的是 Python 3.14。
期间也尝试让 DeepSeek 解决这个问题,给出的方案主要集中在修改环境变量(PATH),但是反复修改后仍然没有解决。
最终通过 OpenAI 定位到了真正原因:不是简单的环境变量问题,而是当前 python3 命令实际指向的位置问题。
下面记录一下解决过程。
第一步:先确认 Python 3.14 到底来自哪里(关键)
先执行:
which -a python3 which -a python python3 -c "import sys; print(sys.executable)"
然后继续执行:
ls -l $(which python3)
你大概率会看到类似结果:
情况 A(最常见)
/Library/Frameworks/Python.framework/Versions/3.14/bin/python3
说明:
当前使用的是 python.org 官网安装包安装的 Python 3.14。
这种情况下,即使安装了 Homebrew 的 Python 3.11,系统仍然优先找到 Python 3.14。
情况 B
/opt/homebrew/bin/python3
说明:
当前使用的是 Homebrew 安装的 Python,但是版本没有切换到 3.11。
第二步:根据安装来源进行处理
情况 A:Python 3.14 来自 python.org 安装包
如果确认是:
/Library/Frameworks/Python.framework/Versions/3.14
可以直接删除 Python 3.14:
sudo rm -rf /Library/Frameworks/Python.framework/Versions/3.14
然后清理可能存在的软链接:
sudo rm -f /usr/local/bin/python3 sudo rm -f /usr/local/bin/pip3
刷新 Shell:
hash -r exec zsh
重新检查:
python3 --version
情况 B:Python 3.14 是 Homebrew 安装的
先确认 Homebrew 当前安装的 Python:
brew list | grep python
如果看到:
python@3.14
执行:
brew uninstall python@3.14
然后切换到 Python 3.11:
brew unlink python brew unlink python@3.14 2>/dev/null brew link python@3.11 --force --overwrite
最后重新检查:
python3 --version
总结
这次问题的核心不是 Python 3.11 没安装,而是:
终端中的 python3 命令仍然指向 Python 3.14 的安装路径。
解决多版本 Python 冲突时,不要第一时间修改 PATH,应该先确认:
which -a python3 python3 -c "import sys; print(sys.executable)"
看当前 Python 实际来源,再决定卸载、unlink 或重新 link。
以上就是Python多版本冲突问题的解决过程的详细内容,更多关于Python多版本冲突问题的资料请关注脚本之家其它相关文章!
