web-dev-qa-db-fra.com

Le terminal Gnome ne démarre pas

J'ai juste essayé d'installer python 3.6 sur mon système Ubuntu 16.04, et maintenant je ne peux pas exécuter le terminal depuis le programme de lancement ou depuis Ctrl + Alt + T. J'ai essayé d'exécuter gnome-terminal à partir de XTerm et j'ai reçu le message suivant:

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'

Comment puis-je réparer cette erreur?

Il convient également de noter que:

  • Mon fichier gnome-terminal est maintenant un script python.
  • Le fichier gnome-terminal.real ouvrira le terminal comme prévu.
  • python3.5 gnome-terminal ouvrira le terminal comme prévu.
26
bengdahl

Probablement le lien symbolique /usr/bin/python3 pointe vers python3.6, ce qu'il ne devrait pas. Corrigez-le en lançant ces commandes:

Sudo rm /usr/bin/python3
Sudo ln -s python3.5 /usr/bin/python3
31
Gunnar Hjalmarsson

Il n'est pas nécessaire de pointer Python3 vers python3.5, il suffit de lancer les commandes:

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
14
Inno Jia

Le changement correct de python3 par défaut se fait via:

Sudo update-alternatives --config python3

Bien que copier le _gi_cairo.cpython-35m-x86_64-linux-gnu.so de python3.5 sur python3.6 puisse résoudre le problème, mais briserait la cohérence de votre bibliothèque. Et devrait être évité.

3
Saeed

Je sais que c’est une vieille question mais pour ceux qui recherchent un moyen autre que de changer python3 en python 3.5 globalement, vous pouvez changer la première ligne de /usr/bin/gnome-terminal de #! /usr/bin/python3 en #! /usr/bin/python3.5.

Remarque: Je n'ai pas python 3.5 sur mon ordinateur, mais import gi fonctionne dans python 3.6, donc utilisé 3.6 au lieu de 3.5.

1
FelisPhasma