Ubuntu升级Python3.7到3.8时update-alternatives配置失效问题求助
Ubuntu Python版本指向异常修复方案
核心原因
你执行update-alternatives报错是因为系统的替代列表里没有预先注册对应的Python版本,--set命令只能修改已存在的替代条目,不能新增。
操作步骤
- 第一步:确认已安装Python的可执行文件路径
执行如下命令查询所有Python可执行文件的位置,记录返回结果:
which python3.7 which python3.8
正常apt安装的Python3.8路径为/usr/bin/python3.8,源码编译安装的默认路径一般为/usr/local/bin/python3.8。
- 第二步:将Python版本注册到系统替代列表
执行以下命令注册版本,末尾的数字为优先级,数值越高默认优先级越高:
# 注册python3的可选版本 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 2 # 注册python的可选版本 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2 # 如果后续找到python3.7的路径,也可以按相同格式注册,优先级设为1即可 # sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 1
- 第三步:选择默认版本
执行如下命令,在弹出的列表中输入对应Python版本的序号,回车确认即可:
sudo update-alternatives --config python3 sudo update-alternatives --config python
- 第四步:排查shell别名冲突
如果配置完成后执行python -V仍然返回3.7版本,执行以下命令检查是否存在别名配置覆盖了系统默认指向:
alias | grep python
如果返回了alias python='xxx/python3.7'类似内容,去~/.bashrc、~/.zshrc(使用zsh终端时)或者/etc/profile配置文件中删除对应别名行,执行source 对应配置文件路径生效即可。
- 第五步:验证配置结果
执行以下命令确认版本指向符合预期:
python -V python3 -V which python which python3
注意事项
部分旧版本Ubuntu的系统工具依赖默认Python3版本,修改默认指向后如果出现系统命令报错,可以重新执行update-alternatives --config命令临时切回旧版本即可,不需要重装系统。
内容的提问来源于stack exchange,提问作者user14590280
相关产品推荐
相关产品推荐

