Ubuntu 18.04.6 LTS执行apt update及neofetch时出现ModuleNotFoundError及后续AttributeError问题求助
Ubuntu 18.04.6 LTS执行apt update及neofetch时出现ModuleNotFoundError及后续AttributeError问题求助
看起来你遇到的问题核心是系统默认Python3版本和Ubuntu 18.04原生依赖的版本不匹配导致的——18.04默认自带Python3.6,而你的系统现在把python3指向了3.10,系统里的工具(比如command-not-found、update-notifier-common)都是基于3.6开发的,依赖的库也是对应3.6版本的,所以才会出现这些报错。我来一步步帮你解决:
1. 恢复系统默认的Python3版本为3.6
Ubuntu 18.04的系统工具完全依赖Python3.6,所以必须把默认python3切回3.6,我们用update-alternatives来配置:
# 添加Python3.6和3.10到备选列表 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1 sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.10 2 # 选择默认版本,输入对应Python3.6的编号即可 sudo update-alternatives --config python3
执行完后,运行python3 --version确认是否显示Python 3.6.x。
2. 恢复之前修改的apt_pkg文件
你之前把apt_pkg.cpython-36m-x86_64-linux-gnu.so改名为apt_pkg.so,这会导致Python3.6无法正确识别这个库,改回原名称:
cd /usr/lib/python3/dist-packages sudo mv apt_pkg.so apt_pkg.cpython-36m-x86_64-linux-gnu.so
3. 修复损坏的系统包
现在解决update-notifier-common的配置错误:
# 重新配置所有未完成的包 sudo dpkg --configure -a # 修复依赖问题 sudo apt-get install -f
4. 验证修复效果
运行以下命令确认问题是否解决:
sudo apt update neofetch
如果需要使用Python3.10,直接调用python3.10即可,不要修改系统默认的python3指向,否则会再次触发类似的系统工具兼容性问题。
备注:内容来源于stack exchange,提问作者FeDos
相关产品推荐
相关产品推荐

