Dans mon cas, si j'essayais d'exécuter n'importe quelle commande qui n'existe pas dans un shell bash, je recevrais cette erreur dégoûtante :
$ programthatdoesntexist
Traceback (most recent call last):
File "/usr/lib/python3.5/dbm/gnu.py", line 4, in
from _gdbm import *
ImportError: No module named '_gdbm'
Pendant le traitement de l'exception ci-dessus, une autre exception s'est produite :
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py", line 7, in
import dbm.gnu as gdbm
File "/usr/lib/python3.5/dbm/gnu.py", line 6, in
raise ImportError(str(msg) + ', veuillez installer le paquet python3-gdbm')
ImportError: No module named '_gdbm', veuillez installer le paquet python3-gdbm
Pendant le traitement de l'exception ci-dessus, une autre exception s'est produite :
Traceback (most recent call last):
File "/usr/lib/command-not-found", line 27, in
from CommandNotFound.util import crash_guard
File "/usr/lib/python3/dist-packages/CommandNotFound/__init__.py", line 3, in
from CommandNotFound.CommandNotFound import CommandNotFound
File "/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py", line 9, in
import gdbm
ImportError: No module named 'gdbm'
Aucune des réponses ci-dessus n'a fonctionné dans mon cas. Bien que ce problème ait été résolu, cela pourrait aider quelqu'un. Si vous avez toujours ce problème, peut-être que ceci aidera :
J'avais installé python3.6 à partir du dépôt ppa.launchpad.net/jonathonf/python-3.6/ubuntu
, et apparemment cela a causé des problèmes.
En essayant de réinstaller les paquets command-not-found python3-commandnotfound python3-gdbm python3-gdbm-dbg sessioninstaller
, j'ai remarqué que apt récupérait des sources d'ici :
Obtention :1 http://ppa.launchpad.net/jonathonf/python-3.6/ubuntu xenial/main amd64 python3-gdbm amd64 3.6.5-3~16.04.york0.2 [14.6 kB]
Pour corriger le problème, j'ai simplement supprimé ce dépôt :
sed -i ' s/^/#/' /etc/apt/sources.list.d/jonathonf-ubuntu-python-3_6-xenial.list
Et ensuite j'ai relancé cette commande (en tant que superutilisateur) :
apt update ; apt purge python3-gdbm ; apt install command-not-found python3-commandnotfound python3-gdbm python3-gdbm-dbg sessioninstaller
Maintenant, tout fonctionne à nouveau :
$ lol
No command 'lol' found, did you mean:
Command 'sol' from package 'aisleriot' (main)
Command 'col' from package 'bsdmainutils' (main)
lol: command not found