最近执行sudo apt-get update的时候突然报错:
Traceback (most recent call last): File "/usr/lib/cnf-update-db", line 8, in <module> from CommandNotFound.db.creator import DbCreator File "/usr/lib/python3/dist-packages/CommandNotFound/db/creator.py", line 11, in <module> import apt_pkg ModuleNotFoundError: No module named 'apt_pkg' 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 /us$ /lib/cnf-update-db; then /usr/lib/cnf-update-db > /dev/null; fi' E: Sub-process returned an error code
简单查了一下,找不到apt_pkg是因为:
更新完python版本之后,路径:/usr/lib/python3/dist-packages 下的文件 apt_pkg.cpython-36m-x86_64-linux-gnu.so,文件名没有跟随 python 版本进行更改,正确做法应该是把文件名中的 36m 更改为你更新后的 python 版本号,如我更新后的 python 版本为 python3.7 ,所以文件名应该更改为 apt_pkg.cpython-37m-x86_64-linux-gnu.so
解决步骤:
$ sudo apt-get remove --purge python-apt $ sudo apt-get install python-apt -f $ cd /usr/lib/python3/dist-packages/ $ sudo cp apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.cpython-37m-x86_64-linux-gnu.so
参考链接:
- 解决:ModuleNotFoundError: No module named 'apt_pkg' https://www.cnblogs.com/laigongzi/p/13662114.html