我将 Python 从 3.6 升级到 3.7.1,之后无法打开 GNOME 终端。我重新安装了 gnome-terminal。使用命令
sudo apt-get remove gnome-terminal && sudo apt-get install gnome-terminal
但是它没有打开。Ctrl++Alt也T不起作用。
我打开 Xterm 并输入“gnome-terminal”。
我收到这个错误
Cannot import name '_gi' from 'gi'(/usr/lib/python3/dist-packages/gi/__init__.py)
错误截图:
输出ls -l /usr/bin/python3
:
ls: cannot access '/usr/bin/python3': No such file or directory
apt
我在命令中也遇到错误:
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. 1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] y
Setting up iotop (0.6-2) ... /var/lib/dpkg/info/iotop.postinst: 6: /var/lib/dpkg/info/iotop.postinst: py3compile: not found dpkg: error processing package iotop (--configure): installed iotop package post-installation script subprocess returned error exit status 127
Errors were encountered while processing: iotop
E: Sub-process /usr/bin/dpkg returned an error code (1)
答案1
通过更新替代方案,您已将 Python 3 设置为默认设置,即使python
调用也是如此。这可能会破坏某些软件包。因此,就 python 而言,最好使用别名。回滚您所做的更改:
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2
sudo update-alternatives --config python
并选择 python2。python
始终用于调用 Python 2,并python3
选择 python2。
GNOME 终端依赖于 Python 3 的默认版本(此处为 3.6)。在您的安装中,GNOME 终端尝试使用 Python 2 运行,这显然无法满足其依赖性。因此,修改第一行/usr/bin/gnome-terminal
并将其更改为:
#!/usr/bin/python3
现在,在你的安装中 python3 不在 /usr/bin/ 中并且没有找到 py3compile,可以通过重新安装 python3-minimal 来恢复它们:
sudo apt install --reinstall python3-minimal
答案2
就我而言,发生这种情况是因为我创建了一个符号链接,指向 python3.7 作为默认的 python3 版本。
不要那样做。
它会破坏 gnome-terminal 并且可能还会破坏其他应用程序。
就我而言,为了将 python3.6 恢复为默认的 python3 解释器,我只需重新创建一个名为 python3 的指向 python3.6 的符号链接。
cd /usr/bin
ln -s python3.6 python3