Ubuntu 16.04.7 預設是裝 python 3.5
若額外裝了python 3.6,然後把 /usr/bin/python3指到python 3.6的話
系統在操作的時候如果輸入找不到的指令或是執行檔,總是會吐出下面的錯誤訊息
Traceback (most recent call last):
File "/usr/lib/python3.6/dbm/gnu.py", line 4, in <module>
from _gdbm import *
ModuleNotFoundError: 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.6/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
ModuleNotFoundError: No module named 'gdbm'
我才發現似乎是因為系統裝了 python3-commandnotfound 這個package,所以找不到command會交給這個package處理,然後python 3.6沒裝gdbm這個套件導致
所以解決方法就是
sudo apt-get install python3.6-gdbm
收工