如何在未配置update-alternatives的Ubuntu系统中设置默认Python版本
背景说明
你之前从Python3.6切换到3.8是Ubuntu官方包管理器自动维护/usr/bin/python3软链接的结果,系统默认没有为python命令配置alternatives规则,所以查询报错是正常现象。
疑问解答
- 执行添加备选命令会不会引发问题?
不会。你现在要配置的是python命令的可选规则,和系统原有python3命令的软链接互相独立,不会修改系统默认Python3的行为,操作可完全回滚。
注意你查到的命令有个不规范的地方:--install的第一个参数是软链接生成路径,建议改为/usr/bin/python而非/usr/local/bin/python,符合系统目录规范,避免PATH优先级冲突。正确的添加命令需要额外指定优先级数值,数字越大优先级越高:
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1 sudo update-alternatives --install /usr/bin/python python /usr/local/bin/python3.10 2
添加完成后执行sudo update-alternatives --config python即可手动切换版本。
两个Python版本路径不同会不会有问题?
完全不会。update-alternatives的设计目的就是管理不同路径下的同名命令,只要添加时填写的可执行文件路径正确,就不会出现适配问题。在/usr/local/bin/下为本身存放在该路径的Python3.10创建软链接会有什么影响?
功能上不会有问题,软链接不会覆盖原有的python3.10二进制文件,执行python和执行python3.10都会指向同一个程序。但不推荐这么做:/usr/local/bin目录用来存放手动编译安装的原生二进制,系统级的通用软链接统一放在/usr/bin下更规范,也能避免后续安装其他软件时出现PATH优先级冲突。
回滚方案
如果操作后出现异常,执行以下命令即可回到初始状态:
# 删除所有python的alternatives配置 sudo update-alternatives --remove-all python # 若不小心修改了python3的配置,可重装恢复系统默认 sudo apt install --reinstall python3-minimal
内容的提问来源于stack exchange,提问作者RTC222
相关产品推荐
相关产品推荐

