Dalam kasus saya, jika saya mencoba menjalankan setiap perintah yang tidak ada di bash shell saya akan mendapatkan error kotor ini:
$ programthatdoesntexist
Traceback (most recent call last):
File "/usr/lib/python3.5/dbm/gnu.py", line 4, in <module>
from _gdbm import *
ImportError: No module named '_gdbm'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py", line 7, in <module>
import dbm.gnu as gdbm
File "/usr/lib/python3.5/dbm/gnu.py", line 6, in <module>
raise ImportError(str(msg) + ', please install the python3-gdbm package')
ImportError: No module named '_gdbm', please install the python3-gdbm package
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/command-not-found", line 27, in <module>
from CommandNotFound.util import crash_guard
File "/usr/lib/python3/dist-packages/CommandNotFound/__init__.py", line 3, in <module>
from CommandNotFound.CommandNotFound import CommandNotFound
File "/usr/lib/python3/dist-packages/CommandNotFound/CommandNotFound.py", line 9, in <module>
import gdbm
ImportError: No module named 'gdbm'
Tidak ada jawaban di atas yang berfungsi dalam kasus saya. Meskipun masalah ini telah dipecahkan, ini mungkin bisa membantu seseorang. Jika Anda masih mengalami masalah ini, mungkin ini akan membantu:
Saya telah menginstal python3.6 dari repositori ppa.launchpad.net/jonathonf/python-3.6/ubuntu
, dan ternyata itu merusak beberapa hal.
Ketika mencoba menginstal ulang paket command-not-found python3-commandnotfound python3-gdbm python3-gdbm-dbg sessioninstaller
, saya perhatikan bahwa apt sedang menarik sumber dari sini:
Get: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]
Untuk memperbaiki masalah ini, saya cukup menghapus repositori itu:
sed -i ' s/^/#/' /etc/apt/sources.list.d/jonathonf-ubuntu-python-3_6-xenial.list
Dan daripada menjalankan kembali perintah ini (sebagai root):
apt update ; apt purge python3-gdbm ; apt install command-not-found python3-commandnotfound python3-gdbm python3-gdbm-dbg sessioninstaller
Sekarang, semuanya berfungsi lagi:
$ lol
No command 'lol' found, did you mean:
Command 'sol' from package 'aisleriot' (main)
Command 'col' from package 'bsdmainutils' (main)
lol: command not found