Терминал Gnome не запустится

Я просто попытался установить python 3.6 в своей системе Ubuntu 16.04, и теперь я не могу выполнить терминал от средства запуска или из Ctrl + Высокий звук + T. Я пытался работать gnome-terminal от XTerm и получил следующее сообщение:

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'

Как я могу зафиксировать эту ошибку?

Нужно также отметить что:

  • Мой gnome-terminal файл является теперь сценарием Python.
  • gnome-terminal.real файл откроет терминал как ожидалось.
  • python3.5 gnome-terminal откроет терминал как ожидалось.
45
задан 23 September 2019 в 18:09

6 ответов

Вероятно, символическая ссылка / usr / bin / python3 указывает на python3.6, чего не должно быть. Исправьте это, выполнив следующие команды:

sudo rm /usr/bin/python3
sudo ln -s python3.5 /usr/bin/python3
45
ответ дан 23 November 2019 в 00:33

Az alapértelmezett python3 megfelelő módosítása a következő módon történik:

sudo update-alternatives --config python3

Bár az _gi_cairo.cpython-35m-x86_64-linux-gnu.so másolása a python3-ból. 5 - python3.6 megoldhatja a problémát, de megsérti a könyvtár konzisztenciáját. És kerülni kell.

10
ответ дан 23 November 2019 в 00:33

Вам не нужно указывать Python3 на python3.5, просто выполняйте команды:

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
29
ответ дан 23 November 2019 в 00:33

Я знаю, что это старый вопрос, но для тех, кто ищет способ, отличный от глобального изменения python3 на python 3.5, вы можете изменить первую строку / usr / bin / gnome- терминал из #! / usr / bin / python3 по #! /usr/bin/python3.5.

Примечание: на моем компьютере нет python 3.5, но import gi работает в python 3.6, поэтому я использовал 3.6 вместо 3.5.

6
ответ дан 23 November 2019 в 00:33

Я исправил проблему gnome-terminal из решения выше.
Введите эти команды:

cd /usr/lib/python3/dist-packages/gi/
sudo cp _gi.cpython-36m-x86_64-linux-gnu.so _gi.cpython-37m-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
1
ответ дан 5 January 2021 в 22:29

РЕАЛЬНАЯ ПРИЧИНА + РЕШЕНИЕ - Python3.7 Gnome Terminal Gets Messed Up - Ubuntu Linux Mint

НА ЭТОТ ВОПРОС НЕ БЫЛО ОТВЕТА в другом сообщении здесь Terminal not opening up after upgrading python to 3.7, поэтому я привожу причину, причину и решение.

Установите python 3.7, правильный ход, но отсутствие PyGObject gi вызывает сбой Gnome Terminal при загрузке, исправить легко

  • sudo apt update && sudo apt upgrade && sudo apt autoremove
  • sudo apt install python3.7 python3. 7-dev ffmpeg
  • sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
  • sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 2
  • sudo update-alternatives --config python3 # выбираем 3.7
  • python3 -V # должна быть версия 3.7.5 или выше
  • НЕ ПЕРЕЗАГРУЖАЙТЕСЬ ЗДЕСЬ ... еще, терминал gnome сломается.

НУЖЕН ОБХОДНОЙ ПУТЬ: В РЕЖИМЕ ДОПОЛНИТЕЛЬНОГО ВОССТАНОВЛЕНИЯ LINUX - (ТАКЖЕ НЕ ПЕРЕЗАПУСКАЙТЕСЬ)

  • $ НЕ ДЕЛАЙТЕ sudo update-alternatives --config python3 # выберите 3.6 Это вернет вам терминал, но это НЕ РЕШЕНИЕ.

( Объяснение: - [https://pygobject.readthedocs.io/en/latest/getting_started.html#ubuntu-getting-started][1] )

РЕШЕНИЕ ПРОСТО УСТАНОВИТЬ ТО, ЧЕГО НЕ БЫЛО.

  • python3 -V # должен быть python 3.7

  • mkdir -p ~/.local/bin ; cd .local/bin

  • vi hello.py # используйте nano или любой другой редактор - это тестовая программа. См. ссылку в конце.

     import gi
     gi.require_version("Gtk", "3.0")
     rom gi.repository import Gtk
    
     window = Gtk.Window(title="Hello World")
     window.show()
     window.connect("destroy", Gtk.main_quit)
     Gtk.main()
    
  • sudo update-alternatives --config python3 # установите python 3.7

  • python3 hello.py # это НЕ работает, поэтому установите что-нибудь ...

  • sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0

  • sudo apt install libgirepository1.0-dev gcc libcairo2-dev pkg-config python3. 7-dev

  • python3 hello.py # это может НЕ работать, установите БОЛЬШЕ вещей

Если вы установите pip install для решения, обратите внимание, что он устанавливается только для пользователя.
Для других Linux или установки без pip используйте ссылку в конце.

  • sudo -k # Обратите внимание, что pip НЕ НАДЕЖЕН НА БЕЗОПАСНОСТЬ, отключите sudo!
  • python3 -m pip install -U pycairo # это автоматически использует pip3
  • python3 -m pip install -U PyGObject # ЭТО РЕШАЕТ ПРОБЛЕМУ!
  • python3 hello.py # РАБОТАЕТ! N.B. другие пользователи должны установить то же самое!
  • sudo shutdown -r now # OK Теперь вы можете перезагрузиться. Терминал Gnome будет работать.
  • Notice мой pip style python3 на самом деле вызывает pip3, а не pip.
  • Истинная причина Ubuntu или Linux Mint: /usr/bin/gnome-terminal вызывает python3 по умолчанию, который является 3.7 и обнаруживает, что ваш gi PyGObject include отсутствует, поэтому терминал не работает, и каждый пользователь лишен панели управления.

Вывод, вы сохраните свое обновление python.

Ссылки: [1]: PyGObject including gi test https://pygobject.readthedocs.io/en/latest/getting_started.html#ubuntu-getting-started

1
ответ дан 28 July 2021 в 14:09

Другие вопросы по тегам:

Похожие вопросы: