162 votes

erreur d'installation de python-dev : ImportError : Aucun module nommé apt_pkg

Je suis un utilisateur Debian, et je veux installer python-dev, mais lorsque j'exécute le code dans le shell en tant que Root :

# aptitude install python-dev

Je reçois l'erreur suivante :

Traceback (most recent call last):       
  File "/usr/bin/apt-listchanges", line 28, in <module>
    import apt_pkg
ImportError: No module named apt_pkg

Quel semble être le problème et comment puis-je le résoudre ?

2voto

J'ai essayé de créer le lien mais de nombreux autres problèmes sont survenus. Donc, vous pouvez choisir l'ancienne version de python pour installer des choses en utilisant :

sudo update-alternatives --config python3

Et revenir à la version souhaitable juste après avoir utilisé la même commande. J'espère que cela fonctionne.

1voto

Aahad Points 142

Après avoir passé 4 heures, j'ai trouvé cette solution qui a finalement fonctionné pour moi. J'espère que cela vous aidera...

Il est important de comprendre que parfois, lorsque vous mettez à jour une ancienne version de python, certains paquets restent dans le chemin de la version précédente, voici donc ce que j'ai fait :

cd /usr/lib/python3/dist-packages

Vérifier l'existence d'un fichier nommé apt_pkg.cpython-35m-x86_64-linux-gnu.so ou 34m ou 36m en listant les fichiers et quand vous le trouvez, supprimez le fichier actuel. apt_pkg.so dans

/usr/lib/python3/dist-packages

Enfin, créez un lien avec le chemin correct en utilisant apt_pkg.so comme ça :

cd /usr/lib/python3/dist-packages
sudo ln -s apt_pkg.cpython-35m-x86_64-linux-gnu.so apt_pkg.so

Maintenant vous pouvez réessayer et cela devrait fonctionner.

1voto

Andrew Lutsyuk Points 87

Cette variante fonctionne pour moi.

cd  /usr/lib/python3/dist-packages
ls -la /usr/lib/python3/dist-packages
sudo cp apt_pkg.cpython-38-x86_64-linux-gnu.so apt_pkg.so

Si vous obtenez un message d'erreur indiquant qu'il y a trop de niveaux de liens symboliques, comme indiqué ci-dessous :

cp: failed to access '/usr/lib/python3/dist-packages/apt_pkg.so': Too many levels of symbolic links

Ensuite, vous devez simplement délier le fichier apt_pkg.so. Utilisez la commande suivante :

sudo unlink apt_pkg.so

Et ensuite utiliser la commande

sudo cp apt_pkg.cpython-38-x86_64-linux-gnu.so apt_pkg.so

Bonne chance !

Réponse originale : https://askubuntu.com/a/1227625

1voto

Windows 10 WSL v1 (Ubuntu 16.04.6 LTS)

Ce site réponse reddit (légèrement modifié a fonctionné pour moi)

sudo ln -sfn /usr/lib/python3/dist-packages/apt_pkg.cpython-35m-x86_64-linux-gnu.so apt_pkg.so

0voto

Andrea Gelmini Points 21

Eh bien, la solution la plus propre pour moi est de reconstruire la bibliothèque correspondante avec votre nouvelle version de Python, dans son espace spécifique.

C'est ce que je fais en ce moment, en passant de Python3.9 à Python3.10.1.

Donc :

cd /tmp/
apt source python3-apt
cd python-apt-version-ecc
python3-new-version setup.py build
python3-new-version setup.py install

Cela a également été fait avec les paquets de dépendances ( software-properties , python-launchpadlib et ainsi de suite), et maintenant add-apt-repository fonctionne comme un charme.

Lesquels recompiler ? Faites simplement attention aux plaintes de l'exécution de add-apt-repository .

Au fait, je suis sur Ubuntu 21.04 mais la logique est la même sur tout système similaire à Debian.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X