如何解决Ubuntu 20.04.3 LTS x86_64执行sudo apt update时apt_pkg模块缺失错误
Ubuntu 20.04 执行sudo apt update提示ModuleNotFoundError: No module named 'apt_pkg'修复方案
该错误由系统默认Python版本被修改后,python3-apt包提供的apt_pkg模块与当前默认Python3版本不匹配导致,cnf-update-db是命令提示工具command-not-found的数据库更新脚本,依赖系统Python的apt相关模块。
修复方法
- 方法一:重装python3-apt包(优先尝试)
执行以下命令重新安装对应系统版本的python3-apt包,重建模块绑定:
sudo apt install --reinstall python3-apt
安装完成后重新执行sudo apt update验证是否修复。
- 方法二:手动创建apt_pkg模块软链接(方法一失效时使用)
如果方法一执行后仍然报错,说明你手动修改了系统默认python3的软链接指向非系统自带的Python版本,按以下步骤操作:- 首先进入apt_pkg模块所在目录
cd /usr/lib/python3/dist-packages/
- 查找当前系统已存在的apt_pkg模块文件
ls apt_pkg.cpython-*
执行后会输出类似apt_pkg.cpython-38-x86_64-linux-gnu.so的文件(Ubuntu 20.04默认对应Python3.8,文件名里的38就是版本号)
- 为当前默认Python3版本创建软链接
假设你现在默认Python3是3.9版本,执行:
sudo ln -s apt_pkg.cpython-38-x86_64-linux-gnu.so apt_pkg.so
如果你的默认Python是其他版本,只需要确保软链接目标是上一步查到的真实so文件即可。
重新执行
sudo apt update验证修复效果。可选方法:不需要command-not-found功能可直接卸载
如果你不需要「输入错命令时提示对应安装包」的功能,可以直接卸载command-not-found工具彻底解决报错:
sudo apt remove command-not-found
内容的提问来源于stack exchange,提问作者Dan
相关产品推荐
相关产品推荐

