python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python多版本冲突问题

Python多版本冲突问题的解决过程

作者:小北编程

你是否遇到过安装了Python3.11,但终端里python3还是显示旧版本,本文记录了一次真实的多版本冲突排查过程,从确认python3实际来源入手,详细讲解如何清理官网安装包或Homebrew管理的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多版本冲突问题的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文