赞
踩
在python3不断发展和python2不再维护的趋势下,公司里面的python2代码逐渐地被python3代替。所以在工作中时而需要python2时而需要python3 ,那么一个灵活切换Ubuntu系统默认python版本的方法便成为这个青黄不接阶段的“痒痒挠”!
这里主要是追本溯源的研究一下一个应用程序在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
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
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安装的目录
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 --version
Python 3.8.0b4
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。