如何修复'ModuleNotFoundError:没有名为'apt_pkg'的模块?

时间:2019-05-20 10:01:28

标签: python ubuntu-18.04

我正在运行代码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

4 个答案:

答案 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默认运行的下一步) 新用户:我无法回复其他评论:(