python add-apt-repository:ImportError:没有名为'apt_pkg'的模块

时间:2017-02-22 08:20:30

标签: python importerror apt

当我尝试:

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上安装此软件包?

7 个答案:

答案 0 :(得分:16)

我有一些与此不同的东西,我失败了No module named 'softwareproperties'

我的解决方案是:

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

当您最近升级添加另一个python3包时,可能会发生这种情况。

答案 1 :(得分:8)

由于版本号可能已更改,因此只需启动。

修复摘要:将我的python3指向python 3.5而不是3.6 cd /usr/bin rm python3 ln -s python3.5 python3

详细信息:我遇到了同样的问题,发现/ usr / bin / add-apt-repository有一个shebang提示使用指向3.6的/ usr / bin / python3。但是我的系统上还有3.5,并且必须经常切换它们,所以我将其切换回来,add-apt-repository现在可以正常工作。

答案 2 :(得分:1)

ubuntu 18.04:

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

将包标题从python3更改为python3.6

对我来说有用

答案 3 :(得分: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. 如果它指向 last(例如 3.8),您应该解决了您的问题。如果 python3 仍然指向较低版本(例如 3.6),请检查 last 在哪里...
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 风格”中可用的最新版本。 (问题应该得到解决)。

答案 4 :(得分:0)

IMO,有一个更简洁的解决方案来绕过系统文件的修改:sudo apt-get install --reinstall python3-apt

答案 5 :(得分:0)

如果您使用的是 UBUNTU,请更改为 python3.8 版本或安装它

sudo apt install python3.8-dev

运行后

sudo apt-get install software-properties-common

答案 6 :(得分: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