Linux(Ubuntu)修改默认python版本

1. 查看python版本

  • 查看系统中有哪些python版本
1
ls /usr/bin/python*

image-20210306163303800

  • 查看系统中默认的python版本
1
python --version

image-20210306163825793

2. 用户级修改

对某个特定用户修改python版本,只需要在其home目录下创建一个alias

  • 打开该用户的.bashrc文件
1
vim ~/.bashrc
  • 添加新的别名来修改默认python版本
1
alias python='/usr/bin/python3.5'

注:改成你想要修改的python版本即可

  • 重新登录或重新加载.bashrc文件,使操作生效
1
source ~/.bashrc

image-20210306181041623

3. 系统级修改

3.1 基于软链接

  • 先删除默认的python软链接
1
sudo rm /usr/bin/python
  • 然后创建一个新的软链接指向需要的python版本
1
sudo ln -s /usr/bin/python3.5 /usr/bin/python

3.2 基于update-alternatives

可以使用update-alternatives来为整个系统更改python版本

  • 列出所有可用的python替代版本信息
1
update-alternatives --list python

image-20210306204933837

注:如果出现以上所示的错误信息,表示update-alternatives没有添加python的替换版本

  • 将python的替换版本添加进去
1
2
3
4
5
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
#update-alternatives:使用 /usr/bin/python2.7 来在自动模式中提供 /usr/bin/python (python)

update-alternatives --install /usr/bin/python python /usr/bin/python3.5 2
#update-alternatives:使用 /usr/bin/python3.5 来在自动模式中提供 /usr/bin/python (python)

注:install选项使用了多个参数用于创建符号链接,最后一个参数指定了此选项的优先级,如果我们没有手动来设置替代选项,那么具有最高优先级的选项就会被选中。 此例子中python3.5 的优先级为2,所有它会为默认的python版本

image-20210306210345852

  • 现在就可以在列出的python替代版本中任意切换
1
update-alternatives --config python

image-20210306225539153

  • 当系统不再存在某个python替代版本时,可以将其从update-alternatives列表中删除掉
1
update-alternatives --remove python /usr/bin/python2.7
1
update-alternatives --list python

image-20210306230907356

4. pip错误

更改python默认版本之后可能会出现错误

  • 显示pip版本
1
pip --version
  • 解决办法是将pip版本更改为符合当前的python版本,对于python2或者python3
1
2
sudo apt-get install python-pip  #python2
sudo apt-get install python3-pip #python3
  • 安装pip之后,可能版本不是最新的,需要更新
1
pip install --upgrade pip
  • 将pip更新为10.0.0之后的版本时,库里面的函数有所变动会出现问题
1
2
3
4
#只需要修改/usr/bin/pip和/usr/bin/pip3文件
from pip import main
#修改为
from pip_internal import main