Mog*_*kan 5 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
Run Code Online (Sandbox Code Playgroud)
小智 30
在我的情况下,问题是由于将 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
Run Code Online (Sandbox Code Playgroud)
解决者:
将 python 版本设置回3.6
小智 26
刚刚重新安装了python3-apt,错误消失了
sudo apt remove python3-apt
Run Code Online (Sandbox Code Playgroud)
重启然后安装,
sudo apt install python3-apt
Run Code Online (Sandbox Code Playgroud)
Dam*_*amo 21
与某些类似,我有 python3.8 和 python3.11,其中 python 和 python3 都是 /usr/bin 中 python3.11 的符号链接
我运行了以下命令解决了该问题:
cd /usr/lib/python3/dist-packages/
sudo cp apt_pkg.cpython-38-x86_64-linux-gnu.so apt_pkg.so
Run Code Online (Sandbox Code Playgroud)
Fed*_*890 13
就我而言,问题是我删除/usr/bin/python3了 Ubuntu 18.04 上的原始符号链接,并将其替换为一个指向python3.8. 当我恢复原来的指向时问题消失了python3.6
我的看法是:如果您需要某个库或模块的自定义版本,请将其安装在隔离环境中,不要弄乱系统设置。否则,您将面临破坏某些东西的风险,而这些东西只有在以后很难弄清楚究竟出了什么问题时才能注意到。
您需要更改Python版本(3.6对我有用)。但是,如果你想要默认的另一个 python 版本(例如 3.8):
尝试编辑该文件并使用特定版本的 python(例如 3.6)/usr/bin/add-apt-repository更改该行。#!/usr/bin/python3
要更改此文件,请打开文本编辑器(例如 nano):
sudo nano /usr/bin/add-apt-repository
替换#!/usr/bin/python3为您的 python 版本(本例中为 3.6)
#!/usr/bin/python3.6
保存文件。
应该管用。