我正在运行代码sudo apt update
并获取错误
ModuleNotFoundError:没有名为“ apt_pkg”的模块。
请帮我解决。
sudo apt update
Hit:20 http://ppa.launchpad.net/xorg-edgers/ppa/ubuntu bionic InRelease
Fetched 93,3 kB in 2s (42,4 kB/s)
Traceback (most recent call last):
File "/usr/lib/cnf-update-db", line 8, in <module>
from CommandNotFound.db.creator import DbCreator
File "/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/cnf-update-db; then /usr/lib/cnf-update-db > /dev/null; fi'
E: Sub-process returned an error code
答案 0 :(得分:19)
在我的情况下,问题是由于将python版本从 3.6 升级到 3.8 而引起的。
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 2
sudo update-alternatives --config python3
解决者:
将python版本设置回 3.6
答案 1 :(得分:10)
只需重新安装python3-apt,错误消失
sudo apt remove python3-apt
重新启动然后安装,
sudo apt install python3-apt
答案 2 :(得分:7)
就我而言,问题是我在Ubuntu 18.04上删除了原始的/usr/bin/python3
符号链接,并用指向python3.8
的符号链接替换了它。当我恢复指向python3.6
我的要点是:如果您需要某些库或模块的自定义版本,请将其安装在隔离的环境中,不要搞乱系统设置。否则,您就有可能破坏某些东西,只有在很难弄清楚到底是什么问题时,才有可能发现这些东西。
答案 3 :(得分:0)
我遇到了这个问题,这是由于我已经在3.5.2中安装了python 3.6.9(Ubuntu 16.04)
我也曾使用sudo update-alternatives --config python3
来不使用auto
将其重新设置为auto
可以为我解决问题(然后设置3.6.9优先级是使默认版本的python默认运行的下一步)
新用户:我无法回复其他评论:(