在用到 add-apt-repository 时,执行一直报错,报错内容如下:
Traceback (most recent call last):
File “/usr/bin/add-apt-repository”, line 10, in
from softwareproperties.SoftwareProperties import SoftwareProperties, shortcut_handler
ModuleNotFoundError: No module named ‘softwareproperties’
定位add-apt-repository
,在目录/usr/bin
目录下,打开发现这是用Python
编写的,因为之前安装anaconda
,把/usr/bin/python
改掉了,换成了python3.7
了,然后进入python3.7
的解释器执行语句:
from softwareproperties.SoftwareProperties import SoftwareProperties, shortcut_handler
果断报错,如下:
from softwareproperties.SoftwareProperties import SoftwareProperties, shortcut_handler
Traceback (most recent call last):
File “”, line 1, in
ModuleNotFoundError: No module named ‘softwareproperties’
然后进入python2.7
的解释器在执行下述语句:
from softwareproperties.SoftwareProperties import SoftwareProperties, shortcut_handler
然后是报错如下
Traceback (most recent call last):
File “”, line 1, in
ImportError: cannot import name shortcut_handler
正好我的系统里还装有Python3.5
(这个是系统自带的),执行下述语句:
from softwareproperties.SoftwareProperties import SoftwareProperties, shortcut_handler
结果如下,这个python3.5环境下的结果表明了这里面是含有softwareproperties.SoftwareProperties
这个模块的,只是缺少lsb_release
模块而已,如果真的缺少了lsb_release
模块,该lsb_release
模块的解决方法在我的其他文章中有介绍:
from softwareproperties.SoftwareProperties import SoftwareProperties, shortcut_handler
Traceback (most recent call last):
File “/usr/bin/lsb_release”, line 25, in
import lsb_release
ModuleNotFoundError: No module named ‘lsb_release’
Traceback (most recent call last):
File “/usr/bin/lsb_release”, line 25, in
import lsb_release
ModuleNotFoundError: No module named ‘lsb_release’
最终发现:原来是因为Python
版本不同,Python
的模块有些许的不同。
解决方法:
打开add-apt-repository
文件,将第一行的#!/usr/bin/python3
改为#!/usr/bin/python3.5
即可。
先打开add-apt-repository
文件:
$ sudo gedit /usr/bin/add-apt-repository
然后进行修改为#!/usr/bin/python3.5即可
。
OK,成功解决softwareproperties
模块的问题。
借鉴:https://blog.csdn.net/MoMo_Goder/article/details/78125453