python添加apt存储库:ImportError:没有名为';apt#U包装';

python添加apt存储库:ImportError:没有名为';apt#U包装';,python,importerror,apt,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 SoftwarePro

当我尝试时:

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'
回溯(最近一次呼叫最后一次):
文件“/usr/bin/add apt repository”,第11行,在
从softwareproperties.softwareproperties导入softwareproperties,快捷方式\u处理程序
文件“/usr/lib/python3/dist packages/softwareproperties/softwareproperties.py”,第27行,在
进口apt_包装
ImportError:没有名为“apt_pkg”的模块
我有两个python版本,一个是2.7,另一个是3.5


如何在python3.5上安装此软件包?

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

没有名为“softwareproperties”的模块

我的解决办法是:

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

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

由于版本号可能已更改,因此刚刚输入

修复摘要:将我的
python3
指向python3.5而不是3.6

cd /usr/bin
rm python3
ln -s python3.5 python3
Detail:我遇到了同样的问题,发现
/usr/bin/add apt repository
有一个使用
/usr/bin/python3
的提示,指向3.6。不过,我的系统上也有3.5版本,必须经常切换,所以我将其切换回来,然后添加apt存储库。

ubuntu 18.04:

sudo vim /usr/bin/add-apt-repository
将包头从
python3
更改为
python3.6



这对我来说很有用

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

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

我让python3指向python3.6,但也安装了python3.8,因此我更新了替代方案,使之与3.6和3.8共存。

我建议的解决方案是让python3指向您使用“Ubuntu方式”管理的上一个安装版本

  • 安装最新可用的python3版本。也许你有,也许你没有
  • 现在检查哪一个是python3的版本
  • 如果它指向最后一个(如3.8),你应该解决你的问题。如果python3仍然指向较低版本(如3.6),请检查last在哪里
  • 现在管理python 3替代方案。检查python3是否存在替代方案
  • 如果列出了一些,请检查是否安装了最新版本,如果是,请选择它,然后您应该解决您的问题。否则请记住优先级的最高值。Ubuntu将使用价值最高的替代方案。退出输入回车按钮

  • 添加最后安装的版本作为备选方案。这里我使用版本的dicimal部分作为优先级。该命令需要python3

  • 如果需要,请添加python3的其他版本。。。(低优先级!!!) 现在你的python3指向了“Ubuntu风格”的最新版本。(这个问题应该得到解决)

  • 为什么要安装Python 3.5的软件包?很可能是一个特定于Ubuntu的系统包,它与默认的系统Python(2.7.x)捆绑在一起。实际上,您没有安装任何东西,您只是向系统添加了一个ppa。对我来说,这看起来像是
    /usr/bin/add apt repository
    (一个Python3脚本)中的一个bug。这是否回答了您的问题?我不得不在Ubuntu16.04上把它编辑成python3.5,它成功了。谢谢。手动编辑系统脚本的包头在16.04版对我来说不起作用,而且一开始似乎很容易出错。对我来说,这看起来像是
    /usr/bin/add apt repository
    中的一个bug。我最终手动添加了ppa(并导入了密钥)。@jangroth我完全同意,添加您的解决方案作为答案:)它只是指向python的正确版本。很难发现你是否有很多安装的SDK,将hashbang更改为python3.5,但更改为python3.4会起作用!在WSL Ubunutu 16.04.4上为我工作。我和OP犯了同样的错误。很高兴这有帮助。考虑到3.6/3.5的向后兼容性,我感到奇怪的是,我曾经遇到过Ubuntu无法正常使用3.6的问题。值得注意的是,在切换回3.5之前,我的终端窗口不会启动。在当前的Ubuntu中,我认为3.6现在是标准的。
    sudo apt update && sudo apt upgrade && sudo apt install python3
    
    python3 --version
    
    which python3.8
    
    sudo update-alternatives --config python3
    
    sudo update-alternatives /usr/bin/python3 python3 /usr/bin/python3.8 8