问题描述

系统:ubuntu16.04 LTS
状况:点击terminal没反应,打不开了
起因:今天想把虚拟机中的ubuntu16.04 LTS升级成18.04,结果升级失败,看网上的教程一顿操作,结果系统没有升级成功还把terminal搞得打不开了,接着又跟着网上的教程一顿瞎操作,依然没有解决terminal打不开的问题;

解决过程:

原因分析:

最终看到一个博客,终于明白了是我把python3的软链接给弄错了(删除了软链接或者将其指向了系统中没有的python版本:比如我系统中的是python3.5,没有装3.6,却把python3的软链接指向了python3.6),所以只需要更新python3的软链接就行了。

具体过程:

  1. 因为terminal已经用不了了,所以需要使用XTerm(ctrl+alt+F1)或者其他ssh工具(如Xshell,前提是你知道该主机的ip)连接到该主机进行操作;

  2. 其他终端中输入:

    1
    gnome-terminal

    报错信息如下:

    1
    bash: /usr/bin/gnome-terminal: /usr/bin/python3 :bad interpreter:No such file or directory
  1. 进入gnome-terminal查看:

    1
    sudo vi /usr/bin/gnome-terminal

    gnome-terminal
    发现这里使用的是python3,所以你必须要有正确的python3

  2. 查看你自己系统中的python链接:

    1
    2
    cd /usr/bin 
    ll python*

    所有python链接
    我的之前是python3->python3.6,而且是红色标记(已经修改好了,错误没截到图);

  3. 重新设置python3的软链接,使其指向你系统已安装的python3.x版本:
    先删除默认的Python3软链接:

    1
    sudo rm /usr/bin/python3

    然后创建一个新的软链接指向需要的Python3版本:

    1
    sudo ln /usr/bin/python3.5 /usr/bin/python3

    问题成功解决!

参考:


补充:

切换系统默认python版本的方法:
系统中安装了python2.x和python3.x,而有的时候,需要用到其中的特定一个版本,直接在terminal中执行

1
python xxx.py

调用的是系统默认的python版本,这时我们使用update-alternatives来为整个系统更改Python版本的优先级;

1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 2

–install选项使用了多个参数用于创建符号链接。最后一个参数指定了此选项的优先级,如果我们没有手动来设置替代选项,那么具有最高优先级的选项就会被选中
这个例子中,我们为/usr/bin/python2.7设置的优先级为2,所以update-alternatives命令会自动将它设置为默认Python版本;

当然,也可以在terminal中直接指定你要使用的python版本:

评论