Ubuntu16.04 管理 Python 多版本优先级和切换
两个版本
ubuntu 16.04 server 中默认是安装两个版本的 python 的,分别为 2.7.12 和 3.5.2。
一般情况下,可以使用 python
来选择 python 2.7,使用 python3
来选择 python 3.5.2。
那么如果我想默认使用 python
代表 python 3.5.2,也就是把 Ubuntu 16 中的默认 Python 版本切换到 3,该怎么做呢?
设置优先级
在 ubuntu 系统中,update-alternatives
是专门维护系统命令链接符的工具,其可以对某个工具的多个软件版本进行管理,通过它可以很方便的设置系统默认使用哪个命令的哪个软件版本。
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
在上面的命令中,我们将 python2 的优先级设置为100,将 python3 的优先级设置为 150,在默认模式下,优先级数字越大,优先级越高。 所以,现在系统中默认的版本变成 python3 了。
可以使用 python -V
来验证一下。
切换
如果现在要切换回 python2 怎么办?像上面一样重新设置优先级么?
可以,但是不必。因为我们已经注册好 python 版本和优先级信息了,现在就可以使用 update-alternatives --config python
来动态选择版本了。
root@daimafans:~# update-alternatives --config python
There are 2 choices for the alternative python (providing /usr/bin/python).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/python3 150 auto mode
1 /usr/bin/python2 100 manual mode
2 /usr/bin/python3 150 manual mode
Press <enter> to keep the current choice[*], or type selection number:
看 Selection
一栏的序号, 0 前面的 *
号,代表当前的默认项,也就是当前的 python 默认版本为 python3,我们需要切换到 python2,序号应该为 1,所以在最后输入 1 后回车。
root@daimafans:~# update-alternatives --config python
There are 2 choices for the alternative python (providing /usr/bin/python).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/python3 150 auto mode
1 /usr/bin/python2 100 manual mode
2 /usr/bin/python3 150 manual mode
Press <enter> to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/bin/python2 to provide /usr/bin/python (python) in auto mode
是不是很方便?