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

执行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.lryc.cn/news/2378195.html

相关文章:

  • maven中relativepath标签的含义及使用方法
  • C++_STL_map与set
  • 项目依赖版本修改
  • 蚁群算法赋能生鲜配送:MATLAB 实现多约束路径优化
  • 机器学习与人工智能:NLP分词与文本相似度分析
  • 记录一下seata后端数据库由mariadb10切换到mysql8遇到的SQLException问题
  • CUDA学习笔记
  • Python爬虫实战:研究JavaScript压缩方法实现逆向解密
  • 【Linux】Shell脚本中向文件中写日志,以及日志文件大小、数量管理
  • c++ 类的语法3
  • Rust 学习笔记:关于 String 的练习题
  • Spring bean 的生命周期、注入方式和作用域
  • Python爬虫(26)Python爬虫高阶:Scrapy+Selenium分布式动态爬虫架构实践
  • Python 之类型注解
  • 【linux】Web服务—搭建nginx+ssl的加密认证web服务器
  • 基于HTTP头部字段的SQL注入:SQLi-labs第17-20关
  • 实战解析MCP-使用本地的Qwen-2.5模型-AI协议的未来?
  • SRS流媒体服务器(5)源码分析之RTMP握手
  • 内核性能测试(60s不丢包性能)
  • RabbitMQ高级篇-MQ的可靠性
  • MySQL 数据库集群部署、性能优化及高可用架构设计
  • fpga系列 HDL : Microchip FPGA开发软件 Libero Soc 项目仿真示例
  • 将单链表反转【数据结构练习题】
  • DeepSearch:WebThinker开启AI搜索研究新纪元!
  • springCloud/Alibaba常用中间件之Setinel实现熔断降级
  • 从裸机开发到实时操作系统:FreeRTOS详解与实战指南
  • Deeper and Wider Siamese Networks for Real-Time Visual Tracking
  • 简单介绍C++中线性代数运算库Eigen
  • Python爬虫实战:研究decrypt()方法解密
  • 黑马程序员C++2024版笔记 第0章 C++入门