Linux No module named ‘CommandNotFound‘ 解决方法

问题

linux安装多版本python时的一个遗留问题, 如果修改了默认系统的/usr/bin/python的软连接到新安装的版本, 可以会报错如下

Traceback (most recent call last):
  File "/usr/lib/cnf-update-db", line 8, in <module>
    from CommandNotFound.db.creator import DbCreator
ModuleNotFoundError: No module named 'CommandNotFound'
Reading package lists... Done
E: Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/lib/command-not-found/ -a -e /usr/lib/cnf-update-db; then /usr/lib/cnf-update-db > /dev/null; fi'
E: Sub-process returned an error code

解决

修改cnf配置文件到原来的系统python版本即可, 比如ubuntu18.04默认是python3.6, 那就修改为3.6, 不然因为修改了软连接到新版本, 比如python3.9, 所以报错"CommandNotFound"

su
vi /usr/lib/cnf-update-db

Linux No module named ‘CommandNotFound‘ 解决方法_第1张图片

保存退出即可

效果

Linux No module named ‘CommandNotFound‘ 解决方法_第2张图片

这样apt就修好了

PS

如果不会vi操作的, 去学习一下基本的字符编辑/删除和保存退出
(vi/vim可是linux的基本功

你可能感兴趣的:(Python,Linux,linux,python,vim)