Właśnie próbowałem zainstalować Python 3.6 na moim systemie Ubuntu 16.04, a teraz nie mogę uruchomić terminala z programu uruchamiającego lub z Ctrl + Alt + T. Próbowałem uruchomić gnome-terminal
z XTerm i dostałem następujący komunikat:
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'
Jak mogę naprawić ten błąd?
Należy również zauważyć, że:
- Mój
gnome-terminal
plik jest teraz skryptem w języku Python. gnome-terminal.real
Plik zostanie otwarty terminal, jak oczekiwano.python3.5 gnome-terminal
otworzy terminal zgodnie z oczekiwaniami.
16.04
gnome
python
gnome-terminal
bengdahl
źródło
źródło
python3-apt
pakiecie; istnieje Launchpad bug otwarte o tym tutaj ./usr/bin
. Mogą istnieć lepsze alternatywy. Jeśli znasz jakieś, napisz własną odpowiedź.Nie musisz wskazywać Python3 na python3.5, wystarczy uruchomić polecenia:
źródło
Prawidłowa zmiana domyślnego python3 odbywa się poprzez:
Chociaż skopiowanie
_gi_cairo.cpython-35m-x86_64-linux-gnu.so
z Python3.5 na Python3.6 może rozwiązać problem, ale może spowodować uszkodzenie spójności biblioteki. I należy tego unikać.źródło
Wiem, że to stare pytanie, ale dla tych, którzy szukają innego sposobu niż globalna zmiana Python3 na Python 3.5, możesz zmienić pierwszą linię
/usr/bin/gnome-terminal
z#! /usr/bin/python3
na#! /usr/bin/python3.5
.Uwaga: Nie mam Pythona 3.5 na moim komputerze, ale
import gi
działa w Pythonie 3.6, więc użyłem 3.6 zamiast 3.5.źródło
gnome-terminal
jedyną rzeczą, która się psuje, czy są też innegnome-*
rzeczy, które powinienem zmienić?