python add-apt-repository:导入错误:没有名为“apt_pkg”的模块

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

当我尝试时:

sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next

在 Ubuntu 中,终端显示此错误消息:

Traceback (most recent call last):
 File "/usr/bin/add-apt-repository", line 11, in <module>
    from softwareproperties.SoftwareProperties import SoftwareProperties, shortcut_handler
  File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 27, in <module>
    import apt_pkg
ImportError: No module named 'apt_pkg'

我有两个版本的python,一个是2.7,另一个是3.5。

如何在python3.5上安装这个包?

python importerror apt
8个回答
45
投票

我有一些与此完全不同的东西。我的失败了

No module named 'softwareproperties'

我的解决方案是:

sudo vim /usr/bin/add-apt-repository
Change package header from `python3` to `python3.4` (or lower)

当您最近升级添加另一个

python3
软件包时,可能会发生这种情况。


15
投票

ubuntu 18.04:

sudo vim /usr/bin/add-apt-repository

将包头从

python3
更改为
python3.6


这对我有用


9
投票

只是插话,因为版本号可能已经改变。

修复摘要:将我的

python3
指向python 3.5而不是3.6

cd /usr/bin
rm python3
ln -s python3.5 python3

细节:我遇到了同样的问题,发现

/usr/bin/add-apt-repository
有一个shebang提示使用
/usr/bin/python3
,它指向3.6。不过,我的系统上也有 3.5,并且必须经常切换它们,所以我将其切换回来,
add-apt-repository
现在可以工作了。


0
投票

我在 Ubuntu 20.04 和 python3 指向 python3.6 上遇到了同样的问题。

我不喜欢编辑系统文件或类似文件(例如/usr/bin/add-apt-repository)和更改某些命令的符号链接(python 非常“特殊”)。我建议遵循 Ubuntu 方式来管理同一命令的替代版本。

我有 python3 指向 python3.6,但也安装了 python3.8,所以我更新了替代方案以使 3.6 和 3.8 共存。

我建议的解决方案是让 python3 指向您使用“Ubuntu方式”管理替代方案的最后安装的版本。

  1. 安装最新可用的 python3 版本。也许你有,也许你没有。
sudo apt update && sudo apt upgrade && sudo apt install python3
  1. 立即检查您的 python3 版本
python3 --version
  1. 如果它指向最后(例如3.8),你应该解决你的问题。如果 python3 仍然指向较低版本(例如 3.6),请检查最后一个在哪里...
which python3.8
  1. 现在管理 python 3 替代品。检查是否存在有关 python3 的替代方案。
sudo update-alternatives --config python3
  1. 如果列出了一些,请检查是否有最新安装的版本,如果是,请选择它,您应该可以解决您的问题。否则请记住优先级的最高值。 Ubuntu 将使用价值最高的替代方案。输入 Enter 按钮退出。

  2. 添加最后安装的版本作为替代。这里我使用版本的小数部分作为优先级。该命令需要 python3

sudo update-alternatives /usr/bin/python3 python3 /usr/bin/python3.8 8
  1. 如果需要,请添加其他版本的python3...(优先级较低!!!) 现在您的 python3 指向“Ubuntu 风格”中可用的最新版本。 (问题应该得到解决)。

0
投票

IMO,有一个更简洁的解决方案可以绕过系统文件的修改:

sudo apt-get install --reinstall python3-apt


0
投票

如果您使用的是

UBUNTU
,请更改为
python3.8
版本或安装

sudo apt install python3.8-dev

跑步后

sudo apt-get install software-properties-common

0
投票

我发现所有包含的东西

ModuleNotFoundError: No module named 'apt_pkg'
Reading package lists... Done

是一个Python问题。要解决这个问题,必须设置正确的 python 版本。 “正确版本”的含义取决于许多因素

检查系统中的python版本

sudo apt list --installed | grep python*

查找
/usr/bin

处的内容
ls -lha /usr/bin/python*
  • 找到生成错误的 Python 文件
Traceback (most recent call last):
  File "/usr/BAR/FOO # Is a python file and it varies
  # For the case in this question the file is at
  # /usr/bin/add-apt-repository
  • 使用
    sudo
    打开文件并添加“正确的python版本”
#!/usr/bin/python3.6

# Above should be the first line of the file

0
投票

这对我有用

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
© www.soinside.com 2019 - 2024. All rights reserved.