web-dev-qa-db-fra.com

Qu'est-ce qui ferait que le module "gi" manque à Python?

Après quelques modifications moins astucieuses de la version par défaut de Python sous Ubuntu, de la version 2.7 à la version 3.2, j'ai fini par casser tout mon système. Après que mon ordinateur ait implosé et que tout ait cessé de fonctionner, j'ai essayé de rétablir mes modifications (en liant /usr/bin/python2.7 à/usr/bin/python et en modifiant la version par défaut dans/usr/share/python/debian_defaults 2.7) mais certaines choses sont encore cassées.

Par exemple, lorsque je tape "import gi" dans l'interpréteur python, le message suivant s'affiche:

>>> import gi
 Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 ImportError: No module named gi
>>> 

erreur qui apparaît aussi avec certains programmes (par exemple: outil gnome Tweak). J'ai essayé de réinstaller python à partir du centre logiciel et des sources, mais la même erreur persiste.

Python - la version retourne maintenant:

 Python 2.7.2

et certains packages logiciels qui dépendent de python 2.7 fonctionnent maintenant (par exemple, le centre logiciel), mais certaines choses sont toujours en panne. Puis-je faire quelque chose pour réinstaller complètement python 2.7 comme version par défaut?

19
Colin Dumitru

J'ai trouvé trois façons de le faire:

  1. La manière simple:

    Sudo apt-get install python3-gi

    ou

  2. Pour les utilisateurs de virtualenv - La méthode vext

    pip install vext

    pip install vext.gi

  3. La méthode de développement pure python:

    Installez un tas de choses pour les développeurs:

    Sudo apt-get install pkg-config libcairo2-dev gcc python3-dev libgirepository1.0-dev

    Installez les packages python:

    pip install gobject PyGObject

18
Matthew

Peu de solution de contournement trouvée ici qui a fonctionné pour moi:

Sudo nano /usr/bin/gnome-Tweak-tool

Remplacez #!/usr/bin/env python par #!/usr/bin/python

8
Pierre de LESPINAY

Exécutez cette commande dans le terminal:

Sudo apt install python3-gi

ou si vous avez plutôt besoin du support Python2:

Sudo apt install python-gi
6
Jeremy Bicha

Dans mon cas:

>>> import gi
>>> gi.__file__
'/usr/lib/python2.7/dist-packages/gi/__init__.pyc'

Donc, ce que vous devez vérifier si vous avez ce fichier disponible. Si ce n'est pas le cas, vérifiez que /usr/lib/python2.7/dist-packages/gi/__init__.py pointe /usr/share/pyshared/gi/__init__.py. Vous devriez avoir ce fichier puisque vous avez python-gobject 3.0.0-0ubuntu4 (oui, j'ai la même version).

Si le package giexiste, vous devriez jeter un coup d'œil à votre sortie sys.path. Si /usr/lib/python2.7/dist-packages n'est pas inclus, ajoutez-le et réessayez.

Une fois l’importation terminée, vous pouvez définir votre PYTHONPATHou rechercher la raison pour laquelle le chemin n’est pas correctement défini.

Le problème en suspens est probablement que votre fichier site.py n'est pas valide pour une raison quelconque ou, plus probablement, que vous n'obtenez pas le bon site.py (il devrait figurer sous /usr/lib/python2.7/). Dans ce cas, regardez ici pour examiner tous les répertoires utilisés par python pour rechercher ce fichier et vérifier que votre environnement est correct.

2
jcollado

Si vous avez installé anaconda et que celui-ci est devenu l'environnement python par défaut, le module gi peut être installé via:

conda install -c conda-forge pygobject 

Voir aussi: https://bugs.launchpad.net/ubuntu/+source/ibus/+bug/161152

1
prusswan