Ubuntu 24.04 回退至 Python 3.10 及多版本管理方案咨询
嗨,我来帮你梳理下这个问题~ 先解决你安装Python3.10失败的困扰,再逐一解答你关心的两个核心疑问:
一、先搞定Python3.10的安装问题
你执行安装命令时出现的E: Package 'python3.10' has no installation candidate,是因为Ubuntu 24.04的默认软件源已经移除了Python3.10的包。要安装它,得先添加专门提供旧版本Python的第三方PPA(deadsnakes),步骤很简单:
- 先安装添加PPA所需的工具包:
sudo apt update && sudo apt install software-properties-common
- 添加deadsnakes的PPA源:
sudo add-apt-repository ppa:deadsnakes/ppa
- 再次更新源,然后安装Python3.10:
sudo apt update && sudo apt install python3.10
这样就能成功安装上Python3.10了。
二、回退Python3.10 vs 用3.12+虚拟环境?更推荐后者
其实更建议你适应Python3.12+虚拟环境的组合,原因有这几点:
- Python3.12是Ubuntu 24.04的系统默认版本,系统里很多内置工具(比如apt相关脚本、系统配置工具)都依赖它,强行把系统默认Python改成3.10,很可能导致系统异常,甚至某些核心功能无法使用。
- 虚拟环境是Python生态里公认的项目隔离方案,能让不同项目使用各自需要的Python版本和依赖包,完全不会互相干扰。你可以给需要用3.10的旧项目单独创建虚拟环境,其他新项目用3.12,这样既兼顾兼容性,又能保证系统稳定性。
如果你的旧项目确实必须依赖Python3.10,那安装3.10来单独使用是没问题的,但千万别把它设为系统全局默认。
三、update-alternatives适合多版本管理吗?当然可以,但要注意边界
用update-alternatives管理多版本完全可行,但一定要区分系统级Python和用户自用Python:
系统的
python3命令(指向/usr/bin/python3)请保持默认的3.12,绝对不要修改,避免破坏系统依赖。你可以用update-alternatives来管理自己日常使用的Python版本,比如给用户级的
python3命令设置可选版本:- 先把Python3.10和3.12注册到alternatives:
sudo update-alternatives --install /usr/local/bin/python3 python3 /usr/bin/python3.12 1 sudo update-alternatives --install /usr/local/bin/python3 python3 /usr/bin/python3.10 2这里的数字是优先级,数字越大优先级越高。
2. 需要切换版本时执行:sudo update-alternatives --config python3然后按提示输入对应编号就能切换。
不过更简单的方式是直接用
python3.10或python3.12命令来调用指定版本,这样更直观,也完全不会影响系统默认的Python。
总结一下:优先用3.12+虚拟环境的组合,真需要3.10就通过deadsnakes安装,用update-alternatives或直接指定版本调用,别碰系统默认的Python3.12就好~
备注:内容来源于stack exchange,提问作者Meenohara




