После некоторого не очень умного редактирования версии Python по умолчанию в Ubuntu, с 2.7 до 3.2, я сломал всю свою систему. После того, как мой компьютер взорвался и все перестало работать, я попытался отменить свои изменения (связав /usr/bin/python2.7 с / usr / bin / python и изменив версию по умолчанию в / usr / share / python / debian_defaults обратно на 2.7) но некоторые вещи все еще сломаны.
Например, когда я набираю «import gi» в интерпретаторе python, я получаю следующее сообщение:
>>> import gi
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named gi
>>>
ошибка, которая появляется с некоторыми программами (например: gnome tweak tool). Я попытался переустановить Python как из центра программного обеспечения, так и из источников, но та же ошибка сохраняется.
Python - версия теперь возвращает:
Python 2.7.2
а также некоторые программные пакеты, которые зависят от Python 2.7, сейчас работают (например, центр программного обеспечения), но некоторые вещи все еще не работают. Что я могу сделать, чтобы полностью переустановить Python 2.7 в качестве версии по умолчанию?
sudo dpkg-reconfigure python2.7
?Ответы:
Я нашел три способа сделать это:
Простой способ:
sudo apt-get install python3-gi
или
Для пользователей virtualenv - лучший способ
pip install vext
pip install vext.gi
Чисто Python для разработчиков:
Установите кучу материалов для разработчиков:
sudo apt-get install pkg-config libcairo2-dev gcc python3-dev libgirepository1.0-dev
Установите пакеты Python:
pip install gobject PyGObject
источник
Небольшой обходной путь, найденный здесь, который работал для меня:
Изменить
#!/usr/bin/env python
на#!/usr/bin/python
источник
python-gobject
на Arch Linux (илиpython3-gi
на Ubuntu), не сработало для меня!Запустите эту команду в терминале:
или если вам нужна поддержка Python2:
источник
Если вы установили anaconda и она стала средой Python по умолчанию, модуль gi можно установить через:
Также см .: https://bugs.launchpad.net/ubuntu/+source/ibus/+bug/1611523.
источник
В моем случае:
Итак, что вы должны проверить, если у вас есть этот файл доступен. Если нет , то проверьте , что
/usr/lib/python2.7/dist-packages/gi/__init__.py
точки/usr/share/pyshared/gi/__init__.py
. Вы должны иметь этот файл, так как у вас естьpython-gobject 3.0.0-0ubuntu4
(да, у меня та же версия).Если
gi
пакет там, то вы должны взглянуть на вашsys.path
вывод. Если/usr/lib/python2.7/dist-packages
его нет, добавьте его и попробуйте снова.После того, как импорт работает, вы можете просто установить
PYTHONPATH
или исследовать причину, по которой путь задан неправильно.Вероятно, нерешенная проблема заключается либо в том, что ваш
site.py
файл недействителен по какой-либо причине, либо, более вероятно, в том, что вы не получаете праваsite.py
(оно должно быть ниже/usr/lib/python2.7/
). В этом случае посмотрите здесь , чтобы просмотреть все каталоги питон использует , чтобы искать этот файл и убедитесь , что среда является правильной.источник
Увеличение многословия переводчика имеет большое значение для решения этой проблемы. Даже после всего этого я попытался сделать простую символическую ссылку из 2.7 dist-пакета на мой usr / local 3.x dist-package и продвинулся немного дальше, но ненамного.
Если вы сможете отследить этот недостающий символ, вы сможете решить эту проблему. Вот все подробные результаты импорта, которые привели меня к этому. Кроме того, это выглядит актуально: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=645963 , Удачи.
Путь поиска даже не смотрит на путь python2.7. Вот как это выглядит с успешной стороны python2.7.
источник