web-dev-qa-db-fra.com

ImportError: Aucun module nommé dbus

J'ai besoin d'aide de toute urgence :(

J'essayais de mettre à jour mon Python et de tout gâcher dans mon système.

Je suis actuellement en mesure de démarrer mon centre de logiciel. J'ai essayé plusieurs corrections sur Google, mais rien n'y fait. Mon centre de logiciels ne peut pas démarrer.

Lorsque j'essaie de le démarrer, cette erreur indique:

astephen@localhost:/usr/bin$ ./software-centerGtk-Message: Failed to load module "gtk-vector-screenshot"
Traceback (most recent call last):
File "./software-center", line 36, in <module>
from softwarecenter.utils import (
File "/usr/share/software-center/softwarecenter/utils.py", line 19, in <module>
import dbus
ImportError: No module named dbus

J'ai essayé de rétablir Dbus en utilisant

 apt-get install --reinstall dbus 

mais cela n'a pas aidé :(

astephen@localhost:/usr/bin$ Sudo apt-get install --reinstall dbusReading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 0 not      upgraded.
Need to get 0 B/231 kB of archives.
After this operation, 0 B of additional disk space will be used.
(Reading database ... 676272 files and directories currently installed.)
Preparing to unpack .../dbus_1.6.18-0ubuntu4.3_AMD64.deb ...
Unpacking dbus (1.6.18-0ubuntu4.3) over (1.6.18-0ubuntu4.3) ...
Processing triggers for ureadahead (0.100.0-16) ...
Processing triggers for man-db (2.6.7.1-1ubuntu1) ...
Setting up dbus (1.6.18-0ubuntu4.3) ...

Toute aide est appréciée :(

3

Une recherche rapide révèle que le nom du paquet Debian pour le module DBUS Python s'appelle python-dbus (ou python3-dbus). Pourquoi il n'est pas disponible alors qu'il s'agit d'une dépendance explicite du paquetage software-center me dépasse. Vous devez réinstaller les deux packages au cas où ils seraient corrompus:

Sudo apt-get install --reinstall software-center python-dbus
2
David Foerster

Si votre module python3 ne peut pas trouver la bonne version de paquet, un hack possible consiste à créer des liens symboliques vers les anciennes versions. En cas de dbus, vous pouvez procéder comme suit. (Disons que vous venez de mettre à jour python3.5 vers python3.6) $ cd /usr/lib/python3/dist-packages/ $ ln -s _dbus_glib_bindings.cpython-{35m,36m}-x86_64-linux-gnu.so

Si vous obtenez d'autres erreurs, essayez de lier tous les packages.

a=$(find /usr/lib/python3/dist-packages -name '*35m*so')
b=$(echo $a | tr 35m 36m)
IFS=' ' read -r -a a <<< $a
IFS=' ' read -r -a b <<< $b

for ((i=0;i<${#a[@]};++i)); do
    ln -s "${a[i]}" "${b[i]}"
done
0
Yuq Wang

Vous devez installer le package dbus-python à l'aide de pip ou pip3:

pip3 install dbus-python

ou

pip install dbus-python

Peut-être vous avez besoin de Sudo avant les commandes ci-dessus.

0
Benyamin Jafari

Adrian O'neil Stephen:

j'ai essayé d'exécuter Sudo -h pip install dbus, mais il a renvoyé: Impossible de trouver une version qui satisfait à l'exigence dbus (à partir des versions:) Aucune distribution correspondante trouvée pour dbus Des idées? :( -

De plus amples informations sur ce que vous avez fait seraient utiles, cependant, mes intuitions:

Considérons un problème de mise à niveau de python3

Lors de la mise à niveau vers python3, les modules changent parfois de nom/la procédure d’importation change; avez-vous supprimé votre ancien environnement python manuellement ou installé quelque chose à partir de git?

Essayez aptitude

Installez aptitude, il recommande des moyens de résoudre les dépendances. Soyez prudent, cependant, vérifiez toujours ce qu'il veut faire, quels autres objets peuvent être affectés par ce changement, et écrivez ce que vous faites et ce que fait l'aptitude afin que vous puissiez toujours annuler d'éventuels faux pas .

Réinstallez votre système

Parfois, il est préférable de tout bricoler (de préférence après une sauvegarde, en utilisant la fonction d'exportation des applications que vous souhaitez sauvegarder, de préférence. Cela simplifie les choses).

0
hirsch