必须通过deadsnakes PPA安装Python 3.10并用update-alternatives管理多版本共存,禁止覆盖系统Python;先添加PPA、安装python3.10及相关组件,再注册3.8和3.10为alternatives备选版本并交互切换,默认指向3.10。

如果您在 Ubuntu 20.04 上需要使用 Python 3.10,但系统默认仅提供 Python 3.8,且希望保留多版本共存并按需切换,则必须避免直接覆盖系统 Python。以下是完成安装与切换的完整操作流程:
一、添加 deadsnakes PPA 并安装 Python 3.10
deadsnakes PPA 是 Ubuntu 社区维护的可信第三方源,持续提供较新稳定版 Python,无需编译即可快速安装。
1、更新软件包索引并安装必要工具:
sudo apt update
sudo apt install -y software-properties-common
2、添加 deadsnakes PPA 源:
sudo add-apt-repository -y ppa:deadsnakes/ppa
立即学习“Python免费学习笔记(深入)”;
3、再次更新并安装 Python 3.10:
sudo apt update
sudo apt install -y python3.10 python3.10-venv python3.10-distutils
4、验证安装结果:
python3.10 --version
二、通过 update-alternatives 注册并管理多个 Python 3 版本
update-alternatives 是 Debian/Ubuntu 系统原生的替代方案管理系统,可安全注册多个 Python 解释器路径,并通过交互式命令统一调度,默认不修改任何系统关键文件。
1、确认当前已安装的 Python 3 可执行路径:
ls -l /usr/bin/python3*
2、将 Python 3.8 注册为备选版本(优先级设为 1):
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
3、将 Python 3.10 注册为备选版本(优先级设为 2):
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2
4、启动交互式版本选择:
sudo update-alternatives --config python3
5、终端将列出所有注册项,输入对应编号后回车,系统即刻生效新的 python3 默认指向。
三、手动配置软链接(备用方案)
该方法绕过 update-alternatives,直接建立 /usr/bin/python3 到目标版本的符号链接,适用于无法使用 alternatives 的受限环境,但需自行承担链接一致性维护责任。
1、先移除现有 python3 软链接(如存在):
sudo rm /usr/bin/python3
2、创建指向 Python 3.10 的新链接:
sudo ln -s /usr/bin/python3.10 /usr/bin/python3
3、验证链接有效性:
ls -l /usr/bin/python3
python3 --version
4、若需切回 Python 3.8,只需重复步骤 1–2,将链接目标改为 /usr/bin/python3.8。
四、修复 pip 并确保其与所选 Python 版本匹配
安装新 Python 版本后,其对应的 pip3.10 可能未自动安装或未正确关联,导致 pip 命令调用失败或指向错误解释器。
1、检查 pip3.10 是否可用:
pip3.10 --version
2、若提示 command not found,手动安装 pip:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3.10 get-pip.py
3、验证 pip 是否绑定到当前 python3 版本:
python3 -m pip --version
4、重要:禁止运行 sudo pip install;应始终使用 python3 -m pip install 以确保模块安装到当前激活的 Python 环境中。
五、配置 sudo 环境变量以支持多版本调用
默认情况下,sudo 会重置 PATH 和 LD_LIBRARY_PATH,导致 sudo python3.10 或 sudo pip3.10 报错“command not found”,因其无法识别用户自定义路径。
1、编辑 sudoers 配置:
sudo visudo
2、在文件末尾添加以下两行:
Defaults env_keep += "PATH"
Defaults env_keep += "LD_LIBRARY_PATH"
3、保存退出后,即可正常使用:
sudo python3.10 -c "print('OK')"
sudo python3.10 -m pip install virtualenv


















