Linux中 python版本更替

python版本优先级设置

很多情况下,一个操作系统中可能会存在多个不同版本的软件,针对不同的情况,我们可能需要使用不同的软件版本,因此如果当需要时候进行替换,是很麻烦的,而且还不是持久存在的。debian推出了一个软件版本管理的工具update-alternatives,下面我用它来管理我的python版本(这样的做的原因是我的云服务器重启后,每次都要进行版本替换,至于为什么会这样,目前还没有去弄懂,不过这里先不谈这个)


简单介绍下update-alternatives

update-alternatives主要用于linux中的软件版本切换。alternatives 实际上是通过软链接的方式对版本进行管理。

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 200

原理:将/usr/bin/python软连接到/etc/alternatives/python,然后/etc/alternatives/python软连接到/usr/bin/python2 100上。

添加进版本组指令的含义解析:

<链接> 是指向 /etc/alternatives/<名称> 的符号链接。(如 /usr/bin/python)
<名称> 是该链接替换组的主控名。(如 python)
<路径> 是软连接目的项目标文件的位置。(如 /usr/bin/python3)
<优先级> 是一个整数,在自动模式下,这个数字越高的选项,其优先级也就越高


对不同的版本进行选择

update-alternatives --config python

1
2
3
4
5
6

Selection Path Priority Status
------------------------------------------------------------
0 /usr/bin/python2.7 2 auto mode
1 /usr/bin/python2.7 2 manual mode
* 2 /usr/bin/python3.6 1 manual mode

选择不同的版本,*表示当前选中的版本。

这样输入python,就进入了相应版本的shell