ModuleNotFoundError:没有名为“apt_pkg”的模块正在安装 deadsnakes 存储库

ModuleNotFoundError: No module named 'apt_pkg' installing deadsnakes repository

提问人:RTC222 提问时间:11/13/2021 最后编辑:wjandreaRTC222 更新时间:12/25/2022 访问量:11190

问:

我想在 Ubuntu 18.04 上安装 Python 3.10(我目前使用的是 Python 3.8),使用我在互联网上找到的以下命令集从 deadsnakes 存储库:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.10

但是我得到了错误.sudo: add-apt-repository: command not found

更多的网络研究使我找到了“ModuleNotFoundError:没有名为'apt_pkg'的模块”出现在各种命令中的这组命令 - 询问 Ubuntu:

sudo apt remove python3-apt
sudo apt autoremove
sudo apt autoclean
sudo apt install python3-apt

其他网络资源也说了同样的话,所以我这样做了,但是当我运行时我仍然收到错误消息。sudo add-apt-repository ppa:deadsnakes/ppa

然后我找到了如何在 Ubuntu 和 Debian 上修复“找不到 add-apt-repository 命令” - phoenixNAP,它建议使用这组命令:

sudo apt update
sudo apt install software-properties-common
sudo apt update

所以我这样做了,但是当我运行时,我现在收到以下错误消息:sudo add-apt-repository ppa:deadsnakes/ppa

~$ sudo add-apt-repository ppa:deadsnakes/ppa
Traceback (most recent call last):
  File "/usr/bin/add-apt-repository", line 12, in <module>
    from softwareproperties.SoftwareProperties import SoftwareProperties, shortcut_handler
  File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 28, in <module>
    import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'

我发现了一些 Web 链接,这些链接显示了早期版本的 Python 的各种解决方案。我目前使用的是 Python 3.8。

在我做更多事情之前,我想问一下,鉴于我所看到的可能解决方案的数量,在尝试安装 deadsnakes 存储库以安装 Python 3.10 时,解决错误消息的最佳方法是什么。ModuleNotFoundError: No module named 'apt_pkg'

非常感谢。

蟒蛇 linux ubuntu apt

评论

2赞 furas 11/13/2021
也许首先你应该检查你是否有并最终使用 .你可能会有问题,因为你跑了,后来 - 对我来说,这是非常错误的想法。add-apt-repository/full/path/to/add-apt-repositoryapt_pkgremove python3-aptinstall python3-apt
1赞 furas 11/13/2021
我使用 Linux Mint 20(基于 Ubuntu 20.04),我无法使用 Ubunut 18.04 对其进行测试,但我有两个名称的相同命令 - 也许你有而不是add-apt-repositoryapt-add-repositoryapt-add-repositoryadd-apt-repository
1赞 furas 11/13/2021
我不确定,但较旧的 Ubuntu 可以用来运行系统功能 - 如果你有,那么它仍然需要在Python 3.6Python 3.8aptPython 3.6
1赞 furas 11/13/2021
顺便说一句:Python 是非常新的版本,某些模块可能无法与此版本一起使用,因此最好等待几个月并继续使用3.103.8
0赞 RTC222 11/13/2021
感谢您的评论。我会尝试你的前两个想法。如果我无法安装它,我可以从源代码构建,但如果可以的话,我想使用死蛇。

答:

26赞 Radjin 3/4/2022 #1

这对我有用:

sudo apt-get install python3-apt --reinstall
cd /usr/lib/python3/dist-packages
sudo cp apt_pkg.cpython-38-x86_64-linux-gnu.so apt_pkg.so

上面文件名中的 38 可能因您而异。

评论

0赞 MattH 7/25/2022
我在不同的情况下有相同的错误消息,但仅第一行就为我修复了它,谢谢
0赞 Joseph 9/25/2023
对我来说,这是最新的 Ubuntu,所以我必须这样做:sudo cp apt_pkg.cpython-310-x86_64-linux-gnu.so apt_pkg.so
0赞 b0tting 11/30/2023 #2

问题是python_apt来自 Ubuntu 存储库,在运行 python 3.10 时为默认的 python 3.8 提供 python-apt。从 Python 3.8 复制 .so 不是一个干净的解决方案。您在此处缺少预期的apt_inst,导致最近的 Ansible 库失败。我的方法是从 python 3.10 重新编译 python-apt 库,这会重新创建相关的 python 库:

git clone https://salsa.debian.org/apt-team/python-apt
cd python-apt && apt build-dep ./ -y && python3 setup.py build && python3 setup.py install