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

问题描述 投票:0回答:2

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

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'的模块”出现在各种命令中找到了这组命令 - Ask Ubuntu

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

其他网络资源也说了同样的事情,所以我这样做了,但是当我运行时我仍然收到错误消息

sudo add-apt-repository ppa:deadsnakes/ppa

然后我找到了How to Fix 'add-apt-repository command not find' on Ubuntu & Debian - 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'
错误消息的最佳方法是什么。

非常感谢。

python linux ubuntu apt
2个回答
26
投票

这对我有用:

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
投票

问题是 python_apt 来自 Ubuntu 存储库,为默认的 python 3.8 提供 python-apt,而您运行的是 python 3.10。从 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
© www.soinside.com 2019 - 2024. All rights reserved.