当前位置:   article > 正文

Ubuntu 切换默认python版本(python2和python3)_ubuntu切换默认python版本

ubuntu切换默认python版本

Ubuntu update-alternatives 切换python默认版本(python2和python3)

1. 背景

在python3不断发展和python2不再维护的趋势下,公司里面的python2代码逐渐地被python3代替。所以在工作中时而需要python2时而需要python3 ,那么一个灵活切换Ubuntu系统默认python版本的方法便成为这个青黄不接阶段的“痒痒挠”!

2. 追本溯源

  • 这里主要是追本溯源的研究一下一个应用程序在Ubuntu怎么被执行的,如果急着想看怎么切换python版本可以直接跳到“3. 使用 update-alternatives 来切换python的默认版本” 。

  • 在Ubuntu的命令行中输入python后,系统将自动地去按顺序寻找环境变量中“PATH”里面列出的目录中名字为python的文件 ,然后执行它 。这个文件将是我们研究怎么切换python版本的入手点。

  • 查看环境变量

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
  • 1
  • 2

一般来说应用都会安装在“usr/bin”或者"usr/local/bin"下,我这里安装在了“usr/bin” 下面 。

  • 用ls -l 看到“usr/bin/python”是个链接文件,我们一路查看下去最终找到了可执行文件的目录“ /usr/local/bin/python3.8”,如下:
ls -l /usr/bin/python
lrwxrwxrwx 1 root root 24 Sep  2 19:17 /usr/bin/python -> /etc/alternatives/python

ls -l /etc/alternatives/python 
lrwxrwxrwx 1 root root 24 Sep  3 20:10 /etc/alternatives/python -> /usr/local/bin/python3.8

ls  -l /usr/local/bin/python3.8
-rwxr-xr-x 1 root root 16691888 Sep  2 18:04 /usr/local/bin/python3.8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • “/etc/alternatives/python”引出了本文的重点,update-alternatives指令。
    将多个版本加入到alternatives的管理库中,由update-alternatives指令来灵活的选择具体要执行哪个可执行文件,具体操作方法请看下文 。

3. 使用 update-alternatives 来切换python的默认版本

  • 将python2和python3加入update-alternatives的管理库中
sudo update-alternatives --install /usr/bin/python python /usr/local/bin/python3.8 200
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
  • 1
  • 2

“/usr/bin/python”: 代表环境变量中python的位置
“/usr/local/bin/python3.8”: 代表实际python安装的目录

  • 查看update-alternatives管理库中python的信息
sudo update-alternatives --config python
There are 2 choices for the alternative python (providing /usr/bin/python).

  Selection    Path                      Priority   Status
------------------------------------------------------------
  0            /usr/local/bin/python3.8   200       auto mode
  1            /usr/bin/python2           100       manual mode
* 2            /usr/local/bin/python3.8   200       manual mode

Press <enter> to keep the current choice[*], or type selection number: 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

到此输入1或者2就可以灵活的去选择python2和python3了。

  • 选择完之后回看一下python的版本信息来验证着个操作:
python --version
Python 3.8.0b4
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/1009108
推荐阅读
相关标签
  

闽ICP备14008679号