Я просто попытался установить 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
откроет терминал как ожидалось. Вероятно, символическая ссылка / usr / bin / python3
указывает на python3.6, чего не должно быть. Исправьте это, выполнив следующие команды:
sudo rm /usr/bin/python3
sudo ln -s python3.5 /usr/bin/python3
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.
Вам не нужно указывать 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
Я знаю, что это старый вопрос, но для тех, кто ищет способ, отличный от глобального изменения 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.
Я исправил проблему 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
РЕАЛЬНАЯ ПРИЧИНА + РЕШЕНИЕ - 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
1sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7
2sudo update-alternatives --config python3
#
выбираем 3.7python3 -V
# должна быть версия 3.7.5 или вышеНУЖЕН ОБХОДНОЙ ПУТЬ: В РЕЖИМЕ ДОПОЛНИТЕЛЬНОГО ВОССТАНОВЛЕНИЯ 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
# это автоматически использует pip3python3 -m pip install -U PyGObject
# ЭТО РЕШАЕТ ПРОБЛЕМУ! python3 hello.py
# РАБОТАЕТ! N.B. другие пользователи должны установить то же самое! sudo shutdown -r now
# OK Теперь вы можете перезагрузиться. Терминал Gnome будет работать. Вывод, вы сохраните свое обновление python.
Ссылки: [1]: PyGObject including gi test https://pygobject.readthedocs.io/en/latest/getting_started.html#ubuntu-getting-started