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

 更新时间:2026年07月15日 09:20:40   作者:小北编程  
你是否遇到过安装了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多版本冲突问题的资料请关注脚本之家其它相关文章!

相关文章

  • 跟老齐学Python之有容乃大的list(1)

    跟老齐学Python之有容乃大的list(1)

    这一讲中的list类型,也是python的一种数据类型。翻译为:列表。LIST在python中具有非常强大的功能。
    2014-09-09
  • Django实现组合搜索的方法示例

    Django实现组合搜索的方法示例

    本篇文章主要介绍了Django实现组合搜索的方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • Python图像读写方法对比

    Python图像读写方法对比

    这篇文章主要介绍了Python图像读写方法对比的相关资料,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下
    2020-11-11
  • python列表list保留顺序去重的实例

    python列表list保留顺序去重的实例

    今天小编就为大家分享一篇python列表list保留顺序去重的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • python递归调用中的坑:打印有值, 返回却None

    python递归调用中的坑:打印有值, 返回却None

    这篇文章主要介绍了python递归调用中的坑:打印有值, 返回却None,本文通过问题分析给出解决方法,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • python人工智能TensorFlow自定义层及模型保存

    python人工智能TensorFlow自定义层及模型保存

    这篇文章主要为大家介绍了python人工智能TensorFlow自定义层及模型保存示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2021-11-11
  • Python导入不同文件夹中文件的方法详解

    Python导入不同文件夹中文件的方法详解

    在写python程序的时候,经常会用到引入其他文件夹里的py文件,下面这篇文章主要给大家介绍了关于Python导入不同文件夹中文件的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • Python实现提前查询考研成绩功能

    Python实现提前查询考研成绩功能

    这篇文章主要介绍了Python实现提前查询考研成绩,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • Python 3.9的到来到底是意味着什么

    Python 3.9的到来到底是意味着什么

    本文主要介绍Python3.9的一些新特性比如说更快速的进程释放,性能的提升,简便的新字符串函数,字典并集运算符以及更兼容稳定的内部API,感兴趣的朋友跟随小编一起看看吧
    2020-10-10
  • 如何在向量化NumPy数组上进行移动窗口

    如何在向量化NumPy数组上进行移动窗口

    这篇文章主要介绍了如何在向量化NumPy数组上进行移动窗口的操作,具有很好的参考价值,希望对大家有所帮助。
    2021-05-05

最新评论