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

是不是很方便?

如果觉得这对你有用,请随意赞赏,给与作者支持
评论 0
最新评论