当前位置: 首页 > 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 获取更多细节。

http://www.xdnf.cn/news/478801.html

相关文章:

  • 数据库行业竞争加剧,MySQL 9.3.0 企业版开始支持个人下载
  • 【Elasticsearch】flattened`类型在查询嵌套数组时可能返回不准确结果的情况
  • 学习状态不佳时的有效利用策略
  • OAT 初始化时出错?问题可能出在 PAM 配置上|OceanBase 故障排查实践
  • 计算机网络 : 网络基础
  • 零基础玩转Apache Superset可视化部署
  • OpenCV 图像透视变换详解
  • 【概率论】 随机变量序列的收敛性
  • 【Unity】 HTFramework框架(六十五)ScrollList滚动数据列表
  • 图像锐化调整
  • <PLC><视觉><机器人>基于海康威视视觉检测和UR机械臂,如何实现N点标定?
  • 使用seatunnel同步磐维数据库数据
  • 【全网首发】解决coze工作流批量上传excel数据文档数据重复的问题
  • 图像分割(0)初步认识
  • 高光谱遥感图像处理之数据分类的fcm算法
  • K8s CoreDNS 核心知识点总结
  • 捌拾伍- 量子傅里叶变换 (3)
  • 【目标检测】RT-DETR
  • 智脑进化:神经网络如何从单层感知机迈向深度学习新纪元
  • 动态规划(2):问题建模与状态设计
  • 求职困境:开发、AI、运维、自动化
  • 序列dp常见思路总结
  • RabbitMQ 消息模式实战:从简单队列到复杂路由(四)
  • 卡顿检测与 Choreographer 原理
  • Java大师成长计划之第24天:Spring生态与微服务架构之分布式配置与API网关
  • window 显示驱动开发-使用有保证的协定 DMA 缓冲区模型
  • 论信息系统项目的范围管理
  • 后端框架(3):Spring(2)
  • Gitee DevOps:中国企业数字化转型的“本土化加速器“
  • Ubuntu 更改 Nginx 版本