67 votes

Problème avec update-manager: Aucun module nommé 'apt_pkg' dans Ubuntu 13.10, après avoir installé Python 3.4 sur /usr/local/lib

Je suis plutôt nouveau sur Ubuntu et j'essaie de lancer update-manager sur Ubuntu 13.10. Je reçois :

jacopo@jacopo-laptop:~$ update-manager 
Traceback (most recent call last):
  File "/usr/bin/update-manager", line 28, in 
    from gi.repository import Gtk
  File "/usr/lib/python3/dist-packages/gi/__init__.py", line 27, in  from ._gi import _API
ImportError: No module named 'gi._gi'
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 64, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in 
    from apport.report import Report
  File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in 
import apport.fileutils
  File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in 
    from apport.packaging_impl import impl as packaging
  File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 20, in 
import apt
File "/usr/lib/python3/dist-packages/apt/__init__.py", line 21, in 
import apt_pkg
ImportError: No module named 'apt_pkg'

Original exception was:
Traceback (most recent call last):
File "/usr/bin/update-manager", line 28, in 
from gi.repository import Gtk
File "/usr/lib/python3/dist-packages/gi/__init__.py", line 27, in 
from ._gi import _API
ImportError: No module named 'gi._gi'

D'après ce que j'ai compris, il s'agit d'un problème lié au fait que je devrais avoir python3.4 installé. Je l'ai installé dans /usr/local/lib, mais j'obtiens toujours la même erreur. De cette façon, je ne peux même pas passer à Ubuntu 14.04.

5voto

M.Hefny Points 189

Le problème pour moi était que j'avais installé python3.7 à côté de python3.6 et en avait fait la version par défaut.

J'ai lancé manuellement la commande suivante :

ln -s /usr/bin/python3.6  /usr/bin/python3

maintenant python3 pointe vers la bonne version de python... cela résout le problème.

4voto

Kerem Kusmezer Points 189

Si vous essayez de passer de 13.10 à 14.04, essayez de suivre ces instructions. Si vous essayez simplement de mettre à jour votre système actuel à partir de la ligne de commande, ouvrez un terminal et tapez ce qui suit :

sudo apt-get update
sudo apt-get dist-upgrade

4voto

Dave Yarwood Points 145

Cette solution utilisée fonctionnait pour moi après avoir effectué une mise à niveau vers Python 3.6 ou 3.7, et que add-apt-repository a cessé de fonctionner :

cd /usr/lib/python3/dist-packages
# où 35m est le fichier que vous avez et 38m correspond à votre version de Python
sudo ln -s apt_pkg.cpython-{35m,38m}-x86_64-linux-gnu.so

Maintenant, j'ai Python 3.8 et add-apt-repository a de nouveau cessé de fonctionner. J'ai trouvé une autre question SO liée, avec cette réponse qui a fonctionné pour moi. Il semble que le nom de fichier attendu soit désormais juste apt_pkg.so, donc vous devez faire ceci :

cd /usr/lib/python3/dist-packages
# où 35m est le fichier que vous avez
sudo ln -s apt_pkg.cpython-35m-x86_64-linux-gnu.so apt_pkg.so

Le fait que le nouveau nom de fichier attendu soit juste apt_pkg.so est prometteur. Espérons que cela signifie que nous n'aurons pas à faire cette manipulation à chaque nouvelle version mineure de Python !

2voto

Renju chingath Points 121

J'ai réussi à résoudre ce problème en copiant apt_pkg.cpython-34m-i386-linux-gnu.so dans /usr/lib/python3/dist-packages/ à partir d'un autre ordinateur de bureau exécutant Ubuntu 14.04 LTS. J'ai essayé presque toutes les possibilités trouvées sur Internet, comme purger l'installation de Python puis la réinstaller, nettoyer les fichiers de mise à niveau cassés, etc., mais sans succès.

1voto

Michael Hooreman Points 481

Juste un conseil : j'évite d'installer "mon" python dans /usr/local, mais j'ai un répertoire dédié par version de python (par exemple dans /opt) et j'utilise des environnements virtuels sur mon compte utilisateur pour utiliser le python dont j'ai besoin, qui est activé par mon .profile

Ainsi, avec cette approche, vous éviterez toujours de modifier la configuration et les dépendances attendues par le système python.

Bon, je sais, c'est trop tard pour votre cas, mais...

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X