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

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

一般来说应用都会安装在“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
  • “/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

“/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就可以灵活的去选择python2和python3了。

  • 选择完之后回看一下python的版本信息来验证着个操作:
python --version
Python 3.8.0b4
  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

补柏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值