После некоторых не так умное редактирование версии Python по умолчанию в Ubuntu, от 2,7 до 3,2, я закончил тем, что повредил свою всю систему. После моего интегрируемого компьютера и все прекратило работать, я пытался вернуться назад свои изменения (путем соединения/usr/bin/python2.7 к/usr/bin/python и изменения версии по умолчанию в/usr/share/python/debian_defaults назад к 2,7), но некоторые вещи все еще повреждаются.
Например, когда я ввожу "импорт gi", в интерпретаторе Python я получаю следующее сообщение:
>>> import gi
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named gi
>>>
ошибка, которая появляется с некоторыми программами также (например: инструмент тонкой настройки гнома). Я попытался переустановить Python и от центра программного обеспечения и из источников, но та же ошибка сохраняется.
Python - версия теперь возвращается:
Python 2.7.2
и также некоторые пакеты программного обеспечения, которые зависят от python 2.7, теперь работают (например, центр программного обеспечения), но некоторые вещи все еще повреждаются. Есть ли что-нибудь, что я могу сделать для завершенного переустанавливания python 2.7 как версии по умолчанию?
Мало обходного решения нашло здесь, это работало на меня:
sudo nano /usr/bin/gnome-tweak-tool
Изменение #!/usr/bin/env python
кому: #!/usr/bin/python
В моем случае:
>>> import gi
>>> gi.__file__
'/usr/lib/python2.7/dist-packages/gi/__init__.pyc'
Таким образом, что необходимо проверить, имеете ли это Вы тот файл в наличии. Если не затем проверка это /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/
). В этом случае взгляните здесь для рассмотрения всего использования Python каталогов, чтобы искать тот файл и проверить, что среда корректна.
Увеличение многословия интерпретатора имеет большое значение для сортирования этой проблемы. Даже, в конце концов, это, я попытался делать простую символьную ссылку 2,7 dist-пакетов к моему usr/local 3.x dist-пакет и добрался немного далее, но не очень.
sudo ln -s /usr/lib/python2.7/dist-packages/gi/ /usr/local/lib/python3.2/dist-packages ~$ python3 Python 3.2.2+ (default, Feb 16 2012, 19:05:44) [GCC 4.6.2] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import gi Traceback (most recent call last): File "", line 1, in File "/usr/local/lib/python3.2/dist-packages/gi/__init__.py", line 23, in from ._gi import _API, Repository ImportError: /usr/lib/libpyglib-gi-2.0-python2.7.so.0: undefined symbol: _Py_ZeroStruct
Если можно разыскать тот отсутствующий символ, Вы смогли решать эту проблему. Вот весь подробный вывод импорта, который привел меня настолько далеко. Кроме того, это кажется релевантным: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=645963, Удача.
>>> import gi # trying gi.cpython-32mu.so # trying gimodule.cpython-32mu.so # trying gi.abi3.so # trying gimodule.abi3.so # trying gi.so # trying gimodule.so # trying gi.py # trying gi.pyc # trying /usr/lib/python3.2/gi.cpython-32mu.so # trying /usr/lib/python3.2/gimodule.cpython-32mu.so # trying /usr/lib/python3.2/gi.abi3.so # trying /usr/lib/python3.2/gimodule.abi3.so # trying /usr/lib/python3.2/gi.so # trying /usr/lib/python3.2/gimodule.so # trying /usr/lib/python3.2/gi.py # trying /usr/lib/python3.2/gi.pyc # trying /usr/lib/python3.2/plat-linux2/gi.cpython-32mu.so # trying /usr/lib/python3.2/plat-linux2/gimodule.cpython-32mu.so # trying /usr/lib/python3.2/plat-linux2/gi.abi3.so # trying /usr/lib/python3.2/plat-linux2/gimodule.abi3.so # trying /usr/lib/python3.2/plat-linux2/gi.so # trying /usr/lib/python3.2/plat-linux2/gimodule.so # trying /usr/lib/python3.2/plat-linux2/gi.py # trying /usr/lib/python3.2/plat-linux2/gi.pyc # trying /usr/lib/python3.2/lib-dynload/gi.cpython-32mu.so # trying /usr/lib/python3.2/lib-dynload/gimodule.cpython-32mu.so # trying /usr/lib/python3.2/lib-dynload/gi.abi3.so # trying /usr/lib/python3.2/lib-dynload/gimodule.abi3.so # trying /usr/lib/python3.2/lib-dynload/gi.so # trying /usr/lib/python3.2/lib-dynload/gimodule.so # trying /usr/lib/python3.2/lib-dynload/gi.py # trying /usr/lib/python3.2/lib-dynload/gi.pyc # trying /usr/local/lib/python3.2/dist-packages/gi.cpython-32mu.so # trying /usr/local/lib/python3.2/dist-packages/gimodule.cpython-32mu.so # trying /usr/local/lib/python3.2/dist-packages/gi.abi3.so # trying /usr/local/lib/python3.2/dist-packages/gimodule.abi3.so # trying /usr/local/lib/python3.2/dist-packages/gi.so # trying /usr/local/lib/python3.2/dist-packages/gimodule.so # trying /usr/local/lib/python3.2/dist-packages/gi.py # trying /usr/local/lib/python3.2/dist-packages/gi.pyc # trying /usr/lib/python3/dist-packages/gi.cpython-32mu.so # trying /usr/lib/python3/dist-packages/gimodule.cpython-32mu.so # trying /usr/lib/python3/dist-packages/gi.abi3.so # trying /usr/lib/python3/dist-packages/gimodule.abi3.so # trying /usr/lib/python3/dist-packages/gi.so # trying /usr/lib/python3/dist-packages/gimodule.so # trying /usr/lib/python3/dist-packages/gi.py # trying /usr/lib/python3/dist-packages/gi.pyc Traceback (most recent call last): File "", line 1, in ImportError: No module named gi
Путь поиска даже не смотрит на путь python2.7. Вот то, как это смотрит с успешной стороны python2.7.
>>> import gi # trying gi.so # trying gimodule.so # trying gi.py # trying gi.pyc # trying /usr/lib/python2.7/gi.so # trying /usr/lib/python2.7/gimodule.so # trying /usr/lib/python2.7/gi.py # trying /usr/lib/python2.7/gi.pyc # trying /usr/lib/python2.7/plat-linux2/gi.so # trying /usr/lib/python2.7/plat-linux2/gimodule.so # trying /usr/lib/python2.7/plat-linux2/gi.py # trying /usr/lib/python2.7/plat-linux2/gi.pyc # trying /usr/lib/python2.7/lib-tk/gi.so # trying /usr/lib/python2.7/lib-tk/gimodule.so # trying /usr/lib/python2.7/lib-tk/gi.py # trying /usr/lib/python2.7/lib-tk/gi.pyc # trying /usr/lib/python2.7/lib-dynload/gi.so # trying /usr/lib/python2.7/lib-dynload/gimodule.so # trying /usr/lib/python2.7/lib-dynload/gi.py # trying /usr/lib/python2.7/lib-dynload/gi.pyc # trying /usr/local/lib/python2.7/dist-packages/gi.so # trying /usr/local/lib/python2.7/dist-packages/gimodule.so # trying /usr/local/lib/python2.7/dist-packages/gi.py # trying /usr/local/lib/python2.7/dist-packages/gi.pyc import gi # directory /usr/lib/python2.7/dist-packages/gi # trying /usr/lib/python2.7/dist-packages/gi/__init__.so # trying /usr/lib/python2.7/dist-packages/gi/__init__module.so # trying /usr/lib/python2.7/dist-packages/gi/__init__.py # /usr/lib/python2.7/dist-packages/gi/__init__.pyc matches /usr/lib/python2.7/dist-packages/gi/__init__.py import gi # precompiled from /usr/lib/python2.7/dist-packages/gi/__init__.pyc # trying __future__.so # trying __future__module.so # trying __future__.py # trying __future__.pyc # trying /usr/lib/python2.7/__future__.so # trying /usr/lib/python2.7/__future__module.so # trying /usr/lib/python2.7/__future__.py # /usr/lib/python2.7/__future__.pyc matches /usr/lib/python2.7/__future__.py import __future__ # precompiled from /usr/lib/python2.7/__future__.pyc # trying /usr/lib/python2.7/dist-packages/gi/_gi.so dlopen("/usr/lib/python2.7/dist-packages/gi/_gi.so", 2); import gi._gobject # directory /usr/lib/python2.7/dist-packages/gi/_gobject # trying /usr/lib/python2.7/dist-packages/gi/_gobject/__init__.so # trying /usr/lib/python2.7/dist-packages/gi/_gobject/__init__module.so # trying /usr/lib/python2.7/dist-packages/gi/_gobject/__init__.py # /usr/lib/python2.7/dist-packages/gi/_gobject/__init__.pyc matches /usr/lib/python2.7/dist-packages/gi/_gobject/__init__.py import gi._gobject # precompiled from /usr/lib/python2.7/dist-packages/gi/_gobject/__init__.pyc # trying /usr/lib/python2.7/dist-packages/gi/_gobject/sys.so # trying /usr/lib/python2.7/dist-packages/gi/_gobject/sysmodule.so # trying /usr/lib/python2.7/dist-packages/gi/_gobject/sys.py # trying /usr/lib/python2.7/dist-packages/gi/_gobject/sys.pyc import gi._glib # directory /usr/lib/python2.7/dist-packages/gi/_glib # trying /usr/lib/python2.7/dist-packages/gi/_glib/__init__.so # trying /usr/lib/python2.7/dist-packages/gi/_glib/__init__module.so # trying /usr/lib/python2.7/dist-packages/gi/_glib/__init__.py # /usr/lib/python2.7/dist-packages/gi/_glib/__init__.pyc matches /usr/lib/python2.7/dist-packages/gi/_glib/__init__.py import gi._glib # precompiled from /usr/lib/python2.7/dist-packages/gi/_glib/__init__.pyc # trying /usr/lib/python2.7/dist-packages/gi/_glib/_glib.so dlopen("/usr/lib/python2.7/dist-packages/gi/_glib/_glib.so", 2); import gi._glib._glib # dynamically loaded from /usr/lib/python2.7/dist-packages/gi/_glib/_glib.so # trying /usr/lib/python2.7/dist-packages/gi/_glib/option.so # trying /usr/lib/python2.7/dist-packages/gi/_glib/optionmodule.so # trying /usr/lib/python2.7/dist-packages/gi/_glib/option.py # /usr/lib/python2.7/dist-packages/gi/_glib/option.pyc matches /usr/lib/python2.7/dist-packages/gi/_glib/option.py import gi._glib.option # precompiled from /usr/lib/python2.7/dist-packages/gi/_glib/option.pyc # trying /usr/lib/python2.7/dist-packages/gi/_glib/sys.so # trying /usr/lib/python2.7/dist-packages/gi/_glib/sysmodule.so # trying /usr/lib/python2.7/dist-packages/gi/_glib/sys.py # trying /usr/lib/python2.7/dist-packages/gi/_glib/sys.pyc # trying /usr/lib/python2.7/dist-packages/gi/_glib/optparse.so # trying /usr/lib/python2.7/dist-packages/gi/_glib/optparsemodule.so # trying /usr/lib/python2.7/dist-packages/gi/_glib/optparse.py # trying /usr/lib/python2.7/dist-packages/gi/_glib/optparse.pyc # trying optparse.so # trying optparsemodule.so # trying optparse.py # trying optparse.pyc # trying /usr/lib/python2.7/optparse.so # trying /usr/lib/python2.7/optparsemodule.so # trying /usr/lib/python2.7/optparse.py # /usr/lib/python2.7/optparse.pyc matches /usr/lib/python2.7/optparse.py import optparse # precompiled from /usr/lib/python2.7/optparse.pyc # trying textwrap.so # trying textwrapmodule.so # trying textwrap.py # trying textwrap.pyc # trying /usr/lib/python2.7/textwrap.so # trying /usr/lib/python2.7/textwrapmodule.so # trying /usr/lib/python2.7/textwrap.py # /usr/lib/python2.7/textwrap.pyc matches /usr/lib/python2.7/textwrap.py import textwrap # precompiled from /usr/lib/python2.7/textwrap.pyc # trying string.so # trying stringmodule.so # trying string.py # trying string.pyc # trying /usr/lib/python2.7/string.so # trying /usr/lib/python2.7/stringmodule.so # trying /usr/lib/python2.7/string.py # /usr/lib/python2.7/string.pyc matches /usr/lib/python2.7/string.py import string # precompiled from /usr/lib/python2.7/string.pyc import strop # builtin # trying gettext.so # trying gettextmodule.so # trying gettext.py # trying gettext.pyc # trying /usr/lib/python2.7/gettext.so # trying /usr/lib/python2.7/gettextmodule.so # trying /usr/lib/python2.7/gettext.py # /usr/lib/python2.7/gettext.pyc matches /usr/lib/python2.7/gettext.py import gettext # precompiled from /usr/lib/python2.7/gettext.pyc # trying locale.so # trying localemodule.so # trying locale.py # trying locale.pyc # trying /usr/lib/python2.7/locale.so # trying /usr/lib/python2.7/localemodule.so # trying /usr/lib/python2.7/locale.py # /usr/lib/python2.7/locale.pyc matches /usr/lib/python2.7/locale.py import locale # precompiled from /usr/lib/python2.7/locale.pyc import operator # builtin # trying functools.so # trying functoolsmodule.so # trying functools.py # trying functools.pyc # trying /usr/lib/python2.7/functools.so # trying /usr/lib/python2.7/functoolsmodule.so # trying /usr/lib/python2.7/functools.py # /usr/lib/python2.7/functools.pyc matches /usr/lib/python2.7/functools.py import functools # precompiled from /usr/lib/python2.7/functools.pyc import _functools # builtin import _locale # builtin # trying copy.so # trying copymodule.so # trying copy.py # trying copy.pyc # trying /usr/lib/python2.7/copy.so # trying /usr/lib/python2.7/copymodule.so # trying /usr/lib/python2.7/copy.py # /usr/lib/python2.7/copy.pyc matches /usr/lib/python2.7/copy.py import copy # precompiled from /usr/lib/python2.7/copy.pyc # trying weakref.so # trying weakrefmodule.so # trying weakref.py # trying weakref.pyc # trying /usr/lib/python2.7/weakref.so # trying /usr/lib/python2.7/weakrefmodule.so # trying /usr/lib/python2.7/weakref.py # /usr/lib/python2.7/weakref.pyc matches /usr/lib/python2.7/weakref.py import weakref # precompiled from /usr/lib/python2.7/weakref.pyc # trying org.so # trying orgmodule.so # trying org.py # trying org.pyc # trying /usr/lib/python2.7/org.so # trying /usr/lib/python2.7/orgmodule.so # trying /usr/lib/python2.7/org.py # trying /usr/lib/python2.7/org.pyc # trying /usr/lib/python2.7/plat-linux2/org.so # trying /usr/lib/python2.7/plat-linux2/orgmodule.so # trying /usr/lib/python2.7/plat-linux2/org.py # trying /usr/lib/python2.7/plat-linux2/org.pyc # trying /usr/lib/python2.7/lib-tk/org.so # trying /usr/lib/python2.7/lib-tk/orgmodule.so # trying /usr/lib/python2.7/lib-tk/org.py # trying /usr/lib/python2.7/lib-tk/org.pyc # trying /usr/lib/python2.7/lib-dynload/org.so # trying /usr/lib/python2.7/lib-dynload/orgmodule.so # trying /usr/lib/python2.7/lib-dynload/org.py # trying /usr/lib/python2.7/lib-dynload/org.pyc # trying /usr/local/lib/python2.7/dist-packages/org.so # trying /usr/local/lib/python2.7/dist-packages/orgmodule.so # trying /usr/local/lib/python2.7/dist-packages/org.py # trying /usr/local/lib/python2.7/dist-packages/org.pyc # trying /usr/lib/python2.7/dist-packages/org.so # trying /usr/lib/python2.7/dist-packages/orgmodule.so # trying /usr/lib/python2.7/dist-packages/org.py # trying /usr/lib/python2.7/dist-packages/org.pyc # trying /usr/lib/python2.7/dist-packages/PIL/org.so # trying /usr/lib/python2.7/dist-packages/PIL/orgmodule.so # trying /usr/lib/python2.7/dist-packages/PIL/org.py # trying /usr/lib/python2.7/dist-packages/PIL/org.pyc # trying /usr/lib/python2.7/dist-packages/gst-0.10/org.so # trying /usr/lib/python2.7/dist-packages/gst-0.10/orgmodule.so # trying /usr/lib/python2.7/dist-packages/gst-0.10/org.py # trying /usr/lib/python2.7/dist-packages/gst-0.10/org.pyc # trying /usr/lib/python2.7/dist-packages/gtk-2.0/org.so # trying /usr/lib/python2.7/dist-packages/gtk-2.0/orgmodule.so # trying /usr/lib/python2.7/dist-packages/gtk-2.0/org.py # trying /usr/lib/python2.7/dist-packages/gtk-2.0/org.pyc # trying /usr/lib/pymodules/python2.7/org.so # trying /usr/lib/pymodules/python2.7/orgmodule.so # trying /usr/lib/pymodules/python2.7/org.py # trying /usr/lib/pymodules/python2.7/org.pyc # trying /usr/lib/python2.7/dist-packages/ubuntu-sso-client/org.so # trying /usr/lib/python2.7/dist-packages/ubuntu-sso-client/orgmodule.so # trying /usr/lib/python2.7/dist-packages/ubuntu-sso-client/org.py # trying /usr/lib/python2.7/dist-packages/ubuntu-sso-client/org.pyc # trying /usr/lib/python2.7/dist-packages/ubuntuone-client/org.so # trying /usr/lib/python2.7/dist-packages/ubuntuone-client/orgmodule.so # trying /usr/lib/python2.7/dist-packages/ubuntuone-client/org.py # trying /usr/lib/python2.7/dist-packages/ubuntuone-client/org.pyc # trying /usr/lib/python2.7/dist-packages/ubuntuone-control-panel/org.so # trying /usr/lib/python2.7/dist-packages/ubuntuone-control-panel/orgmodule.so # trying /usr/lib/python2.7/dist-packages/ubuntuone-control-panel/org.py # trying /usr/lib/python2.7/dist-packages/ubuntuone-control-panel/org.pyc # trying /usr/lib/python2.7/dist-packages/ubuntuone-couch/org.so # trying /usr/lib/python2.7/dist-packages/ubuntuone-couch/orgmodule.so # trying /usr/lib/python2.7/dist-packages/ubuntuone-couch/org.py # trying /usr/lib/python2.7/dist-packages/ubuntuone-couch/org.pyc # trying /usr/lib/python2.7/dist-packages/ubuntuone-installer/org.so # trying /usr/lib/python2.7/dist-packages/ubuntuone-installer/orgmodule.so # trying /usr/lib/python2.7/dist-packages/ubuntuone-installer/org.py # trying /usr/lib/python2.7/dist-packages/ubuntuone-installer/org.pyc # trying /usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol/org.so # trying /usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol/orgmodule.so # trying /usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol/org.py # trying /usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol/org.pyc # trying struct.so # trying structmodule.so # trying struct.py # trying struct.pyc # trying /usr/lib/python2.7/struct.so # trying /usr/lib/python2.7/structmodule.so # trying /usr/lib/python2.7/struct.py # /usr/lib/python2.7/struct.pyc matches /usr/lib/python2.7/struct.py import struct # precompiled from /usr/lib/python2.7/struct.pyc import _struct # builtin # trying /usr/lib/python2.7/dist-packages/gi/_glib/gi.so # trying /usr/lib/python2.7/dist-packages/gi/_glib/gimodule.so # trying /usr/lib/python2.7/dist-packages/gi/_glib/gi.py # trying /usr/lib/python2.7/dist-packages/gi/_glib/gi.pyc # trying /usr/lib/python2.7/dist-packages/gi/_gobject/constants.so # trying /usr/lib/python2.7/dist-packages/gi/_gobject/constantsmodule.so # trying /usr/lib/python2.7/dist-packages/gi/_gobject/constants.py # /usr/lib/python2.7/dist-packages/gi/_gobject/constants.pyc matches /usr/lib/python2.7/dist-packages/gi/_gobject/constants.py import gi._gobject.constants # precompiled from /usr/lib/python2.7/dist-packages/gi/_gobject/constants.pyc # trying /usr/lib/python2.7/dist-packages/gi/_gobject/_gobject.so dlopen("/usr/lib/python2.7/dist-packages/gi/_gobject/_gobject.so", 2); import gi._gobject._gobject # dynamically loaded from /usr/lib/python2.7/dist-packages/gi/_gobject/_gobject.so # trying /usr/lib/python2.7/dist-packages/gi/_gobject/propertyhelper.so # trying /usr/lib/python2.7/dist-packages/gi/_gobject/propertyhelpermodule.so # trying /usr/lib/python2.7/dist-packages/gi/_gobject/propertyhelper.py # /usr/lib/python2.7/dist-packages/gi/_gobject/propertyhelper.pyc matches /usr/lib/python2.7/dist-packages/gi/_gobject/propertyhelper.py import gi._gobject.propertyhelper # precompiled from /usr/lib/python2.7/dist-packages/gi/_gobject/propertyhelper.pyc # trying /usr/lib/python2.7/dist-packages/gi/_gobject/GTypeWrapper.so # trying /usr/lib/python2.7/dist-packages/gi/_gobject/GTypeWrappermodule.so # trying /usr/lib/python2.7/dist-packages/gi/_gobject/GTypeWrapper.py # trying /usr/lib/python2.7/dist-packages/gi/_gobject/GTypeWrapper.pyc # trying datetime.so # trying datetimemodule.so # trying datetime.py # trying datetime.pyc # trying /usr/lib/python2.7/datetime.so # trying /usr/lib/python2.7/datetimemodule.so # trying /usr/lib/python2.7/datetime.py # trying /usr/lib/python2.7/datetime.pyc # trying /usr/lib/python2.7/plat-linux2/datetime.so # trying /usr/lib/python2.7/plat-linux2/datetimemodule.so # trying /usr/lib/python2.7/plat-linux2/datetime.py # trying /usr/lib/python2.7/plat-linux2/datetime.pyc # trying /usr/lib/python2.7/lib-tk/datetime.so # trying /usr/lib/python2.7/lib-tk/datetimemodule.so # trying /usr/lib/python2.7/lib-tk/datetime.py # trying /usr/lib/python2.7/lib-tk/datetime.pyc # trying /usr/lib/python2.7/lib-dynload/datetime.so dlopen("/usr/lib/python2.7/lib-dynload/datetime.so", 2); import datetime # dynamically loaded from /usr/lib/python2.7/lib-dynload/datetime.so # trying /usr/lib/python2.7/dist-packages/gi/_gobject/GTypeWrapper.so # trying /usr/lib/python2.7/dist-packages/gi/_gobject/GTypeWrappermodule.so # trying /usr/lib/python2.7/dist-packages/gi/_gobject/GTypeWrapper.py # trying /usr/lib/python2.7/dist-packages/gi/_gobject/GTypeWrapper.pyc import gi._gi # dynamically loaded from /usr/lib/python2.7/dist-packages/gi/_gi.so
Выполните эту команду в терминале:
sudo apt install python3-gi
или если Вам нужна поддержка Python2 вместо этого:
sudo apt install python-gi
Я нашел три способа сделать это:
Простой путь:
sudo apt-get install python3-gi
или
Для virtualenv пользователей - vext путь
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
Если Вы установили анаконду, и это стало средой Python по умолчанию, gi модуль может быть установлен через:
conda install -c conda-forge pygobject
Также см.: https://bugs.launchpad.net/ubuntu / + source/ibus / + ошибка/1611523
В среде Python все зависит от зависимостей, как в C. Но если вы установите модуль через PyPI (pip ) или системного инструмента упаковки (apt, yum, brew и т. д.), это имеет значение для дальнейшего вызова всех скриптов Python. например установить PyGObject
A. (Выберите один или другой) с помощью инструмента пакета (в некоторых случаях это может не работать, apt может быть отключен или изменить версию Python):
sudo apt install python3-gi python3-gi-cairo gir1.2-gtk-3.0
или B. (Выберите один или другой) через PyPi (это всегда должно работать)
cat <<EOF | tee requirements.txt
pycairo
PyGObject
EOF
pip3 install -r requirements.txt
Библиотеки Python устанавливаются с помощью стандартных инструментов пакета, и дальнейшее обновление нарушит работу системы зависимостей, если не используется стандартный пакет python3-:
python3
>>> импортировать gi.repository
(Рекомендуется для разработчиков) Модули Python могут быть установлены в виртуальной среде (virtualenv create / usr / src / venv). Следовательно, он будет найден в блоке оболочки, начиная с включенного virtualenv:
source / usr / src / venv / bin / activate
pip3 install -r requirements.txt
python3
>>> импортировать gi.repository
requirements.txt содержит список модулей Python, которые вы хотите добавить в PYTHONPATH. Virtualenv гарантирует, что каждый требуемый модуль доступен из желаемой версии Python и библиотеки, и имеет приоритет над системным менеджером инструментов пакетов.
sudo apt-get install -y python-gobject
Исправлено для меня в Ubuntu 18.04.
В моем случае я использовал Python3.6 и недавно обновился до Python3.7, после чего возникла эта проблема. Это решение работает для меня:
cd /usr/lib/python3/dist-packages/gi
sudo ln -s _gi.cpython-{36m,37m}-x86_64-linux-gnu.so
Этот работал у меня на Ubuntu 20.04, python 3.8 с использованием виртуальной среды.
Для удобства я цитирую:
... но я понимаю, что моя версия Python была 3.6, а gi был установлен в каталоге python 3, потому что я установил через этот команду «sudo apt-get install python3-gi», поэтому я запускаю эту команду на своем терминал:
ln -s /usr/lib/python3/dist-packages/gi /home/your_name_goes_here/miniconda3/lib/python3.6/site-packages/
(PS: в "your_user_goes_here" вы указываете свое имя пользователя)
На самом деле, для корректности (поскольку я не использую conda) Я изменил команду на:
$ ln -s /usr/lib/python3/dist-packages/gi /home/your_name_goes_here/your_python_path/3.8/lib/python3.8/site-packages
Для Ubuntu 16.04 с Python3.6 через deadsnakes PPA.
Символическая ссылка двоичных файлов дистрибутива (3.5) на новые имена (3.6):
cd /usr/lib/python3/dist-packages/gi
sudo ln -s _gi.cpython-35m-x86_64-linux-gnu.so _gi.cpython-36m-x86_64-linux-gnu.so
sudo ln -s _gi_cairo.cpython-35m-x86_64-linux-gnu.so _gi_cairo.cpython-36m-x86_64-linux-gnu.so