O terminal Gnome não será iniciado

22

Eu apenas tentei instalar o python 3.6 no meu sistema Ubuntu 16.04, e agora eu não consigo rodar o terminal pelo launcher ou pelo Ctrl + Alt + T. Eu tentei executar o gnome-terminal do XTerm e recebi a seguinte mensagem:

Traceback (most recent call last):
  File "/usr/bin/gnome-terminal", line 9, in <module>
    from gi.repository import GLib, Gio
  File "/usr/lib/python3/dist-packages/gi/__init__.py", line 42, in <module>
    from . import _gi
ImportError: cannot import name '_gi'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
    from apport.report import Report
  File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
    import apport.fileutils
  File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
    from apport.packaging_impl import impl as packaging
  File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 23, in <module>
    import apt
  File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
    import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'

Original exception was:
Traceback (most recent call last):
  File "/usr/bin/gnome-terminal", line 9, in <module>
    from gi.repository import GLib, Gio
  File "/usr/lib/python3/dist-packages/gi/__init__.py", line 42, in <module>
    from . import _gi
ImportError: cannot import name '_gi'

Como posso corrigir esse erro?

Também deve ser notado que:

  • Meu arquivo gnome-terminal agora é um script python.
  • O arquivo gnome-terminal.real abrirá o terminal como esperado.
  • python3.5 gnome-terminal abrirá o terminal como esperado.
por bengdahl 05.02.2017 / 20:45

4 respostas

25

Provavelmente, o link simbólico /usr/bin/python3 aponta para python3.6, o que não deveria. Corrija-o executando estes comandos:

sudo rm /usr/bin/python3
sudo ln -s python3.5 /usr/bin/python3
    
por Gunnar Hjalmarsson 05.02.2017 / 20:54
10

Você não precisa apontar o Python3 para o python3.5, apenas executando os comandos:

cd /usr/lib/python3/dist-packages/gi/
sudo cp _gi.cpython-35m-x86_64-linux-gnu.so _gi.cpython-36m-x86_64-linux-gnu.so
sudo cp _gi_cairo.cpython-35m-x86_64-linux-gnu.so _gi_cairo.cpython-36m-x86_64-linux-gnu.so
    
por Inno Jia 26.01.2018 / 09:48
0

A alteração adequada do python3 padrão é feita por meio de:

sudo update-alternatives --config python3

Embora a cópia do _gi_cairo.cpython-35m-x86_64-linux-gnu.so do python3.5 para o python3.6 pudesse resolver o problema, mas quebraria a consistência da biblioteca. E deve ser evitado.

    
por 22.03.2019 / 23:25
0

Eu sei que esta é uma pergunta antiga, mas para aqueles que procuram uma maneira diferente de alterar python3 para python 3.5 globalmente, você pode alterar a primeira linha de /usr/bin/gnome-terminal de #! /usr/bin/python3 para #! /usr/bin/python3.5 .

Nota: Eu não tenho o python 3.5 no meu computador, mas import gi funciona no python 3.6, então usei 3.6 em vez de 3.5.

    
por 28.04.2019 / 05:21