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垃圾邮件的逻辑回归分类示例详解

    Python垃圾邮件的逻辑回归分类示例详解

    这篇文章主要给大家介绍了关于Python垃圾邮件的逻辑回归分类的相关资料,作为初学者实践文本分类是一个不错的开始,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2021-11-11
  • Python列表reverse()函数使用方法详解

    Python列表reverse()函数使用方法详解

    这篇文章主要详细介绍了Python列表reverse()函数使用方法,文章通过代码示例讲解的非常详细,对我们的学习或工作有一定的帮助,需要的朋友可以参考下
    2023-07-07
  • python_array[0][0]与array[0,0]的区别详解

    python_array[0][0]与array[0,0]的区别详解

    今天小编就为大家分享一篇python_array[0][0]与array[0,0]的区别详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python爬虫实现抓取电影网站信息并入库

    Python爬虫实现抓取电影网站信息并入库

    本文主要介绍了利用Python爬虫实现抓取电影网站信息的功能,并将抓取到的信息入库。文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下
    2022-02-02
  • Python数据结构与算法之二叉树结构定义与遍历方法详解

    Python数据结构与算法之二叉树结构定义与遍历方法详解

    这篇文章主要介绍了Python数据结构与算法之二叉树结构定义与遍历方法,结合实例形式详细分析了Python实现二叉树结构的定义、遍历方法及相关注意事项,需要的朋友可以参考下
    2017-12-12
  • Django之全局使用request.user.username的实例详解

    Django之全局使用request.user.username的实例详解

    这篇文章主要介绍了Django之全局使用request.user.username的实例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • python编写俄罗斯方块

    python编写俄罗斯方块

    这篇文章主要为大家详细介绍了python编写俄罗斯方块,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • pygame实现飞机大战

    pygame实现飞机大战

    这篇文章主要为大家详细介绍了pygame实现飞机大战,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • python实现忽略大小写对字符串列表排序的方法

    python实现忽略大小写对字符串列表排序的方法

    这篇文章主要介绍了python实现忽略大小写对字符串列表排序的方法,通过三种不同的方法实现了对字符串的排序,是非常实用的技巧,需要的朋友可以参考下
    2014-09-09
  • 如何解决Selenium包安装成功却无法导入的问题

    如何解决Selenium包安装成功却无法导入的问题

    这篇文章主要介绍了如何解决Selenium包安装成功却无法导入的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08

最新评论