web-dev-qa-db-fra.com

paquet manquant CommandNotFound

J'ai récemment mis à jour de 15h10 à 16h04 et maintenant mon python3 semble être foiré.

Avant la mise à niveau, j'avais python3.4 et python3.5.1 (manuellement) installé. La mise à niveau a supprimé python3.4 et l'a remplacée par python3.2 et python3.1.
Le nouveau python3.5.1 a supprimé mon python3.5.1 installation.

Mais maintenant, je suis confronté à beaucoup de problèmes:

  • cochez cette question
  • comand-not-found ne fonctionne plus et plante avec cette trace (1)

  • si j'essaie de lancer commmand-not-found avec python3.2 (2)

J'ai enlevé un peu plus de choses, car c'est toujours la même chose.

Je ne veux pas utiliser les anciennes versions python3, comment puis-je résoudre ce problème?
Et pourquoi y at-il python3.1?

(1)

 me@my-machine:~$ whareis systemd     
 Traceback (most recent call last):
   File "/usr/lib/command-not-found", line 27, in <module>
     from CommandNotFound.util import crash_guard
 ImportError: No module named 'CommandNotFound'

(2)

Traceback (most recent call last):
  File "/usr/lib/python3.2/dbm/gnu.py", line 6, in <module>
    from _gdbm import *
ImportError: No module named _gdbm
2
LittleByBlue

Solution: Contrairement à ce que j'ai mentionné auparavant, mon installation de python3.5.1 n'a pas été supprimée par la mise à jour. C'était toujours sous /usr/local/bin/python3.5.

Traçage de l'erreur: J'ai écrit quelques lignes de débogage dans /usr/lib/python3.5/_sysconfigdata.py:

print("python-version", sys.version_info)
print("python-gcc-version",sys.version)
print("python-executable",sys.executable)

La sortie était différente entre l'appel de /usr/bin/python3 et de rhythmbox, mais l'exécutable python était dans les deux sens /usr/bin/python3

Puis j'ai cherché la mauvaise installation en utilisant whereis python3 et enlevé /usr/local/bin/python3.5

Ensuite, j'ai purgé et réinstallé python3 et j'ai exécuté apt install -f.
Cette erreur a donc disparu.

Souvenez-vous: n'installez jamais de choses à partir des sources, si elles se trouvent parfois dans le dépôt ou du moins, supprimez-les avant que votre gestionnaire de paquets ne les installe.

1
LittleByBlue

Vu la même erreur dans Ubuntu 16.04 avec deux installations de Python3 (3.5.2 et 3.7.3):

$ junk
Traceback (most recent call last):
  File "/usr/lib/command-not-found", line 27, in <module>
    from CommandNotFound.util import crash_guard
ModuleNotFoundError: No module named 'CommandNotFound'

Je n'avais pas besoin de python 3.5.2. Donc, le supprimer en procédant comme suit a résolu l'erreur pour moi:

Sudo apt-get remove --purge python3*
Sudo apt autoremove

Ensuite, je vois command not found comme prévu:

$ junk
junk: command not found
0
Vikram Hosakote