web-dev-qa-db-fra.com

ImportError: impossible d'importer le nom '_gi' lors de la tentative d'ajout d'un référentiel PPA

J'ai essayé d'installer MPV sur mon Ubuntu (18.04 LTS). Chaque fois que j'essaie d'ajouter un référentiel PPA à mon système, j'obtiens cette erreur.

Par exemple, j'ai essayé ceci:

Sudo add-apt-repository ppa:mc3man/mpv-tests

Et j'ai ceci:

Traceback (most recent call last):
  File "/usr/bin/add-apt-repository", line 11, in <module>
    from softwareproperties.SoftwareProperties import SoftwareProperties, shortcut_handler
  File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 67, in <module>
    from gi.repository import Gio
  File "/usr/lib/python3/dist-packages/gi/__init__.py", line 42, in <module>
    from . import _gi
ImportError: cannot import name '_gi' from partially initialized module 'gi' (most likely due to a circular import) (/usr/lib/python3/dist-packages/gi/__init__.py)

Cela se produit chaque fois que j'essaie d'ajouter un PPA à mon système. J'avais Python 3.6 installé par défaut mais mis à jour plus tard en Python 3.8.0. Je suis nouveau sous Linux. Quelle pourrait être la cause de ce problème? Et comment résoudre cela?

Je vous remercie!

3
Abdullah Ar Rayhan

Il semble que votre système ait des problèmes pour choisir la bonne version Python.

Essayez de modifier le fichier /usr/bin/add-apt-repository et changer la ligne #!/usr/bin/python3 avec la version spécifique de python, dans votre cas:

#!/usr/bin/python3.8

Vous pouvez également voir si vous avez une ancienne version de travail de python installée que vous pouvez utiliser à la place:

ls -al /usr/bin | grep python

recherchez d'autres versions, comme python3.5 ou python3.6 et essayez de remplacer le #!/usr/bin/python3.8 avec le numéro de version approprié.

3
Smurfz87

J'ai eu le même problème mais avec python mis à jour vers 3.7. J'ai trouvé la méthode à partir de ce lien: Comment installer gi pour anaconda python3.6 et ça marche pour moi Dans votre situation, essayez de changer 3.7 en 3.8 et 37 en 38:

ln -s /usr/lib/python3/dist-packages/gi/ /home/$USER/anaconda3/lib/python3.7/site-packages/
cd /home/$USER/anaconda3/lib/python3.7/site-packages/gi/
Sudo cp _gi.cpython-36m-x86_64-linux-gnu.so _gi.cpython-37m-x86_64-linux-gnu.so
Sudo cp _gi_cairo.cpython-36m-x86_64-linux-gnu.so _gi_cairo.cpython-37m-x86_64-linux-gnu.so
0
Alexey Khotulev