当前位置: 首页 > news >正文

执行apt-get update 报错ModuleNotFoundError: No module named ‘apt_pkg‘的解决方案汇总

Ubuntu版本ubuntu18.04

报错内容:

//执行apt-get upgrade报错:
Traceback :File “/usr/lib/cnf-update-db”, line 8, in <module>from CommandNotFound.db.creator import DbcreatorFile “/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 /usr/lib/cnfupdate-db;  then /usr/lib/cnf-update-db> /dev/null; fi"
E: Sub-process returned an error code.

问题原因:

在 Ubuntu 18.04 中遇到 ModuleNotFoundError: No module named ‘apt_pkg’ 错误,通常是因为 python3-apt 包损坏或版本不兼容。

详细错误原因

apt_pkg 是 python3-apt 包的组成部分,用于 Python 与 APT 交互。
当该包损坏、版本不匹配或 Python 环境路径错误时,会触发此错误。

解决措施:

(我的上面的报错,从第一步执行到第四步就解决了):

1. 修复 python3-apt 包

重新安装关键包:

# 先清理可能的残留配置
sudo apt-get clean
sudo apt-get autoclean# 强制重新安装 python3-apt 和相关包
sudo apt-get install --reinstall python3-apt
sudo apt-get install --reinstall command-not-found

2. 检查 Python 模块路径

确保 apt_pkg 模块的路径正确:

# 查找 apt_pkg 模块位置
find /usr/lib/python3/dist-packages -name "apt_pkg*.so"# 预期输出类似:
# /usr/lib/python3/dist-packages/apt_pkg.cpython-36m-x86_64-linux-gnu.so

如果路径存在但名称不匹配,手动创建符号链接:

# 进入 Python 模块目录
cd /usr/lib/python3/dist-packages# 创建符号链接(替换实际文件名)
sudo ln -s apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.so

3. 更新软件源并修复依赖

# 更新软件源列表
sudo rm -rf /var/lib/apt/lists/*
sudo apt-get update# 修复依赖关系
sudo apt-get install -f
sudo dpkg --configure -a

4. 如果仍报错,尝试强制修复

# 强制重新安装所有关键包
sudo apt-get install --reinstall ubuntu-release python3-minimal python3.6

5. 检查 Python 版本兼容性

Ubuntu 18.04 默认使用 Python 3.6,如果手动升级过 Python 版本(如 3.8/3.10),可能导致兼容性问题。

解决方法:

  • 回退到系统默认 Python 3.6,或
  • 重新编译 python3-apt 以匹配新版本(复杂,不推荐)。

6. 终极方案(谨慎操作)

如果以上方法无效,尝试升级到更新的 Ubuntu 版本(如 20.04/22.04),但需备份数据:

# 先升级到 18.04 的最新状态
sudo apt-get update && sudo apt-get dist-upgrade# 安装升级工具
sudo apt-get install update-manager-core# 启动系统升级
sudo do-release-upgrade

7.验证修复

重新运行命令测试:

sudo apt-get update
sudo apt-get upgrade

若问题解决,apt 操作应恢复正常。如果仍有问题,请检查日志 /var/log/apt/term.log 获取更多细节。

相关文章:

  • 文件系统交互实现
  • 特斯拉虚拟电厂:能源互联网时代的分布式革命
  • NX二次开发C#---遍历当前工作部件实体并设置颜色
  • 来一个复古的技术FTP
  • 交叉熵损失函数,KL散度, Focal loss
  • PHP:经典编程语言在新时代的持续活力与演进
  • 中exec()函数因$imagePath参数导致的命令注入漏洞
  • 自定义CString类与MFC CString类接口对比
  • 奥运数据可视化:探索数据讲述奥运故事
  • w~深度学习~合集3
  • PyTorch 的 F.scaled_dot_product_attention 返回Nan
  • 三格电子上新了——Modbus转IEC104网关
  • C42-作业练习
  • 速通RocketMQ配置
  • MySQL——3、数据类型
  • YOLOv8在单目向下多车辆目标检测中的应用
  • VsCode和AI的前端使用体验:分别使用了Copilot、通义灵码、iflyCode和Trae
  • CentOS系统中升级Python 3.12.2版本
  • 基于对抗性后训练的快速文本到音频生成:stable-audio-open-small 模型论文速读
  • 火语言RPA--EmpireV7下载发布
  • 中国纪检监察刊文:力戒形式主义官僚主义关键是要坚持实事求是
  • 武大校长:人工智能不存在“过度使用”,武大不会缩减文科
  • 韧性十足的中国外贸企业:“不倒翁”被摁下去,还会再弹起来
  • 马上评|中学生被操场地面烫伤,谁的“大课间”?
  • 《求是》杂志发表习近平总书记重要文章《锲而不舍落实中央八项规定精神,以优良党风引领社风民风》
  • 尊严的代价:新加坡福利体系下的价值困境