当我尝试:
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上安装此软件包?
答案 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 方式”管理替代方案的上次安装版本。
sudo apt update && sudo apt upgrade && sudo apt install python3
python3 --version
which python3.8
sudo update-alternatives --config python3
如果列出了一些,请检查安装的最后一个版本是否在,如果是选择它,您应该解决您的问题。否则记住优先级的最高值。 Ubuntu 将使用具有最高价值的替代方案。退出键入 Enter 按钮。
添加最后安装的版本作为替代。这里我优先使用版本的小数部分。该命令需要python3
sudo update-alternatives /usr/bin/python3 python3 /usr/bin/python3.8 8
答案 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 版本。 “正确版本”的含义取决于许多因素
sudo apt list --installed | grep python*
/usr/bin
中的内容ls -lha /usr/bin/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