Po trochę niezbyt sprytnej edycji domyślnej wersji Pythona w Ubuntu, od wersji 2.7 do 3.2, ostatecznie zepsułem cały system. Po tym jak mój komputer zaimplodował się i wszystko przestało działać, próbowałem przywrócić moje zmiany (łącząc /usr/bin/python2.7 z / usr / bin / python i zmieniając domyślną wersję w / usr / share / python / debian_defaults z powrotem do 2.7), ale niektóre rzeczy są nadal zepsute.
Na przykład po wpisaniu „import gi” w interpreterie python pojawia się następujący komunikat:
>>> import gi
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named gi
>>>
błąd, który pojawia się również w niektórych programach (np .: narzędzie do ulepszania gnome). Próbowałem ponownie zainstalować Pythona zarówno z centrum oprogramowania, jak i ze źródeł, ale ten sam błąd nadal występuje.
Python - wersja zwraca teraz:
Python 2.7.2
a także niektóre pakiety oprogramowania, które zależą od Pythona 2.7, działają teraz (na przykład centrum oprogramowania), ale niektóre rzeczy są nadal zepsute. Czy mogę coś zrobić, aby całkowicie ponownie zainstalować Python 2.7 jako wersję domyślną?
sudo dpkg-reconfigure python2.7
?Odpowiedzi:
Znalazłem trzy sposoby, aby to zrobić:
Prosty sposób:
sudo apt-get install python3-gi
lub
Dla użytkowników virtualenv - irytujący sposób
pip install vext
pip install vext.gi
Sposób twórcy czysto pythonowego:
Zainstaluj kilka rzeczy dla programistów:
sudo apt-get install pkg-config libcairo2-dev gcc python3-dev libgirepository1.0-dev
Zainstaluj pakiety python:
pip install gobject PyGObject
źródło
Znaleziono małe obejście , które działało dla mnie:
Zmień
#!/usr/bin/env python
na#!/usr/bin/python
źródło
python-gobject
na Arch Linux (lubpython3-gi
na Ubuntu) nie działało dla mnie!Uruchom to polecenie w terminalu:
lub jeśli zamiast tego potrzebujesz obsługi języka Python2:
źródło
Jeśli zainstalowałeś anakondę i stało się to domyślnym środowiskiem Pythona, moduł gi można zainstalować poprzez:
Zobacz także: https://bugs.launchpad.net/ubuntu/+source/ibus/+bug/1611523
źródło
W moim przypadku:
Więc co musisz sprawdzić, czy masz ten plik dostępny. Jeśli nie, sprawdź te
/usr/lib/python2.7/dist-packages/gi/__init__.py
punkty/usr/share/pyshared/gi/__init__.py
. Powinieneś mieć ten plik, skoro go maszpython-gobject 3.0.0-0ubuntu4
(tak, mam tę samą wersję).Jeśli
gi
pakiet tam jest, powinieneś rzucić okiem na swójsys.path
wynik. Jeśli/usr/lib/python2.7/dist-packages
nie jest uwzględniony, dodaj go i spróbuj ponownie.Po zakończeniu importowania możesz po prostu ustawić
PYTHONPATH
lub zbadać dalej, dlaczego ścieżka nie jest poprawnie ustawiona.Problem prawdopodobnie polega na tym, że
site.py
plik nie jest prawidłowy z jakiegokolwiek powodu lub, co bardziej prawdopodobne, że nie masz racjisite.py
(powinien być poniżej/usr/lib/python2.7/
). W takim przypadku zajrzyj tutaj, aby przejrzeć wszystkie katalogi, w których Python szuka tego pliku i sprawdź, czy twoje środowisko jest poprawne.źródło
Zwiększenie gadatliwości tłumacza ustnego przyczynia się do triaging tej kwestii. Nawet po tym wszystkim próbowałem zrobić proste dowiązanie symboliczne pakietu dist 2.7 do mojego pakietu usr / local 3.x i poszedłem trochę dalej, ale niewiele.
Jeśli możesz wyśledzić brakujący symbol, być może uda Ci się rozwiązać ten problem. Oto wszystkie pełne dane wyjściowe importu, które doprowadziły mnie do tej pory. Wydaje się to również istotne: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=645963 , powodzenia.
Ścieżka wyszukiwania nawet nie patrzy na ścieżkę python2.7. Oto, jak to wygląda z udanej strony python2.7.
źródło