ModuleNotFoundError: No module named 'softwareproperties'

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
cs5117155
帖子: 33
注册时间: 2018-06-09 17:47

ModuleNotFoundError: No module named 'softwareproperties'

#1

帖子 cs5117155 » 2023-11-02 10:35

我之前把系统自带python2.7,还有pytho3删除后,再自已重新安装python2.7与python3,结果发现运行sudo add-apt-repository ppa:xxxx,都会提示`ModuleNotFoundError: No module named 'softwareproperties'`,我系统版本是20.04

代码: 全选

➜  ~ sudo add-apt-repository ppa:gnome-terminator            
Traceback (most recent call last):
  File "/usr/bin/add-apt-repository", line 12, in <module>
    from softwareproperties.SoftwareProperties import SoftwareProperties, shortcut_handler
ModuleNotFoundError: No module named 'softwareproperties'
➜  ~ which pip3
/home/jingmian/.local/bin/pip3
➜  ~ which pip 
/home/jingmian/.local/bin/pip
➜  ~ which python3
/usr/local/bin/python3
➜  ~ which python 
/usr/bin/python
➜  ~ uname -a                                    
Linux jingmian-X3 5.15.0-76-generic #83~20.04.1-Ubuntu SMP Wed Jun 21 20:23:31 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
➜  ~ sudo apt install --reinstall python3-software-properties
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
将会同时安装下列软件:
  python3-apt software-properties-common
建议安装:
  python3-apt-dbg python-apt-doc
下列软件包将被升级:
  python3-apt python3-software-properties software-properties-common
升级了 3 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 392 个软件包未被升级。
有 13 个软件包没有被完全安装或卸载。
需要下载 0 B/234 kB 的归档。
解压缩后会消耗 0 B 的额外空间。
您希望继续执行吗? [Y/n] Y
(正在读取数据库 ... 系统当前共安装有 418616 个文件和目录。)
准备解压 .../python3-apt_2.0.1ubuntu0.20.04.1_amd64.deb  ...
Traceback (most recent call last):
  File "/usr/bin/py3clean", line 32, in <module>
    from debpython import files as dpf
ModuleNotFoundError: No module named 'debpython'
dpkg: 警告: 旧的 python3-apt 软件包 pre-removal 脚本 子进程返回错误状态 1
dpkg: 现在尝试使用新软件包所带的脚本...
Traceback (most recent call last):
  File "/usr/bin/py3clean", line 32, in <module>
    from debpython import files as dpf
ModuleNotFoundError: No module named 'debpython'
dpkg: 处理归档 /var/cache/apt/archives/python3-apt_2.0.1ubuntu0.20.04.1_amd64.deb (--unpack)时出错:
 新的 python3-apt 软件包 pre-removal 脚本 子进程返回错误状态 1
Traceback (most recent call last):
  File "/usr/bin/py3compile", line 34, in <module>
    from debpython.version import SUPPORTED, debsorted, vrepr, \
ModuleNotFoundError: No module named 'debpython'
dpkg: 清理时出错:
 已安装 python3-apt 软件包 post-installation 脚本 子进程返回错误状态 1
准备解压 .../software-properties-common_0.99.9.12_all.deb  ...
Traceback (most recent call last):
  File "/usr/bin/py3clean", line 32, in <module>
    from debpython import files as dpf
ModuleNotFoundError: No module named 'debpython'
dpkg: 警告: 旧的 software-properties-common 软件包 pre-removal 脚本 子进程返回错
误状态 1
dpkg: 现在尝试使用新软件包所带的脚本...
Traceback (most recent call last):
  File "/usr/bin/py3clean", line 32, in <module>
    from debpython import files as dpf
ModuleNotFoundError: No module named 'debpython'
dpkg: 处理归档 /var/cache/apt/archives/software-properties-common_0.99.9.12_all.
deb (--unpack)时出错:
 新的 software-properties-common 软件包 pre-removal 脚本 子进程返回错误状态 1
Traceback (most recent call last):
  File "/usr/bin/py3compile", line 34, in <module>
    from debpython.version import SUPPORTED, debsorted, vrepr, \
ModuleNotFoundError: No module named 'debpython'
dpkg: 清理时出错:
 已安装 software-properties-common 软件包 post-installation 脚本 子进程返回错误
状态 1
准备解压 .../python3-software-properties_0.99.9.12_all.deb  ...
Traceback (most recent call last):
  File "/usr/bin/py3clean", line 32, in <module>
    from debpython import files as dpf
ModuleNotFoundError: No module named 'debpython'
dpkg: 警告: 旧的 python3-software-properties 软件包 pre-removal 脚本 子进程返回
错误状态 1
dpkg: 现在尝试使用新软件包所带的脚本...
Traceback (most recent call last):
  File "/usr/bin/py3clean", line 32, in <module>
    from debpython import files as dpf
ModuleNotFoundError: No module named 'debpython'
dpkg: 处理归档 /var/cache/apt/archives/python3-software-properties_0.99.9.12_all
.deb (--unpack)时出错:
 新的 python3-software-properties 软件包 pre-removal 脚本 子进程返回错误状态 1
Traceback (most recent call last):
  File "/usr/bin/py3compile", line 34, in <module>
    from debpython.version import SUPPORTED, debsorted, vrepr, \
ModuleNotFoundError: No module named 'debpython'
dpkg: 清理时出错:
 已安装 python3-software-properties 软件包 post-installation 脚本 子进程返回错误
状态 1
在处理时有错误发生:
 /var/cache/apt/archives/python3-apt_2.0.1ubuntu0.20.04.1_amd64.deb
 /var/cache/apt/archives/software-properties-common_0.99.9.12_all.deb
 /var/cache/apt/archives/python3-software-properties_0.99.9.12_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
请问还有办法修复吗
头像
astolia
论坛版主
帖子: 6454
注册时间: 2008-09-18 13:11

Re: ModuleNotFoundError: No module named 'softwareproperties'

#2

帖子 astolia » 2023-11-02 16:01

你是怎么删的又是怎么重装的?
正常情况下,安装了源里的python3-minimal包后,就会有debpython模块了,那些出错脚本中的py3clean、py3compile也都是这个包里面的。
你现在的情况是,光有py3clean、py3compile这些,但debpython模块没了,导致后续依赖这个模块的包安装不上
cs5117155
帖子: 33
注册时间: 2018-06-09 17:47

Re: ModuleNotFoundError: No module named 'softwareproperties'

#3

帖子 cs5117155 » 2023-11-02 16:25

我之前在csdn看到这个文章https://blog.csdn.net/xhamigua/article/ ... /125651907,就尝试删除,然后开始安装python

代码: 全选

一 下载
wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1rc2.tgz

二 解压
tar zxvf Python-3.7.1rc2.tgz
cd Python-3.7.1rc2

三 编译

./configure
make
sudo make install

先找的python3.7解释器位置,一般是
/usr/local/bin/python3.7

四 删除原来的软连接

rm -rf /usr/bin/python3
rm -rf /usr/bin/pip3

五 添加python3的软链接

ln -s /usr/local/bin/python3.7 /usr/bin/python3

六. 安装pip 

wget https://bootstrap.pypa.io/get-pip.py
$python3 get-pip.py

#添加 pip3 的软链接
ln -s /usr/local/bin/pip3.7 /usr/bin/pip3
我基本python2.7.python3.5~3.8都是这样重装循环,但依然无法解决问题
头像
astolia
论坛版主
帖子: 6454
注册时间: 2008-09-18 13:11

Re: ModuleNotFoundError: No module named 'softwareproperties'

#4

帖子 astolia » 2023-11-02 19:34

我真不知道你是怎么想的,用debian系不就图个预编译包多么,你非要自己编译,还是去编译比源里自带的更低版本的包。
你编译出来的东西,不打包成deb,进不了包管理系统,你再用apt安装其他依赖python的包很难不会搞出一些依赖关系不满足的事。
你把编译出来安装的都删了,重新安装源里的那几个python3核心包试试 sudo apt install --reinstall python3 python3-minimal python3.8 python3.8-minimal libpython3.8-minimal libpython3.8-stdlib
cs5117155
帖子: 33
注册时间: 2018-06-09 17:47

Re: ModuleNotFoundError: No module named 'softwareproperties'

#5

帖子 cs5117155 » 2023-11-04 22:04

非常感觉你的批评,因为我之前想安装一个AI图片生成软件,C开头的软件,忘记什么名字了,然后它提示我版本要3.8,想找一个docker版本AI图片软件,又没有合适的,然后我有些python代码运行在3.5版本上,有些是3.6版本,就想安装多版本Python使用,结果这样删除重装python,就不行了。

代码: 全选

➜  ~ sudo apt install --reinstall python3 python3-minimal python3.8 python3.8-minimal libpython3.8-minimal libpython3.8-stdlib
[sudo] jingmian 的密码: 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
将会同时安装下列软件:
  python3-apt python3-software-properties software-properties-common
建议安装:
  python3-apt-dbg python-apt-doc
下列软件包将被升级:
  python3-apt python3-software-properties software-properties-common
升级了 3 个软件包,新安装了 0 个软件包,重新安装了 6 个软件包,要卸载 0 个软件包,有 389 个软件包未被升级。
有 16 个软件包没有被完全安装或卸载。
需要下载 4,938 kB 的归档。
解压缩后会消耗 0 B 的额外空间。
您希望继续执行吗? [Y/n] Y
获取:1 http://mirrors.aliyun.com/ubuntu focal/main amd64 python3 amd64 3.8.2-0ubuntu2 [47.6 kB]
获取:2 http://mirrors.aliyun.com/ubuntu focal-updates/main amd64 python3-apt amd64 2.0.1ubuntu0.20.04.1 [154 kB]
获取:3 http://mirrors.aliyun.com/ubuntu focal-updates/main amd64 software-properties-common all 0.99.9.12 [10.4 kB]
获取:4 http://mirrors.aliyun.com/ubuntu focal-updates/main amd64 python3-software-properties all 0.99.9.12 [21.7 kB]
获取:5 http://mirrors.aliyun.com/ubuntu focal/main amd64 python3-minimal amd64 3.8.2-0ubuntu2 [23.6 kB]
获取:6 http://mirrors.aliyun.com/ubuntu focal-updates/main amd64 python3.8-minimal amd64 3.8.10-0ubuntu1~20.04.8 [1,902 kB]
获取:7 http://mirrors.aliyun.com/ubuntu focal-updates/main amd64 libpython3.8-minimal amd64 3.8.10-0ubuntu1~20.04.8 [717 kB]
获取:8 http://mirrors.aliyun.com/ubuntu focal-updates/main amd64 libpython3.8-stdlib amd64 3.8.10-0ubuntu1~20.04.8 [1,675 kB]
获取:9 http://mirrors.aliyun.com/ubuntu focal-updates/main amd64 python3.8 amd64 3.8.10-0ubuntu1~20.04.8 [387 kB]
已下载 4,938 kB,耗时 2秒 (3,047 kB/s)
(正在读取数据库 ... 系统当前共安装有 418616 个文件和目录。)
准备解压 .../python3.8-minimal_3.8.10-0ubuntu1~20.04.8_amd64.deb  ...
正在解压 python3.8-minimal (3.8.10-0ubuntu1~20.04.8) 并覆盖 (3.8.10-0ubuntu1~20.
04.8) ...
准备解压 .../libpython3.8-minimal_3.8.10-0ubuntu1~20.04.8_amd64.deb  ...
find: ‘/usr/lib/python3.8’: 没有那个文件或目录
正在解压 libpython3.8-minimal:amd64 (3.8.10-0ubuntu1~20.04.8) 并覆盖 (3.8.10-0ub
untu1~20.04.8) ...
正在设置 libssl1.1:amd64 (1.1.1f-1ubuntu2.20) ...
正在设置 libpython3.8-minimal:amd64 (3.8.10-0ubuntu1~20.04.8) ...
# Empty sitecustomize.py to avoid a dangling symlink
正在设置 python3.8-minimal (3.8.10-0ubuntu1~20.04.8) ...
# Empty sitecustomize.py to avoid a dangling symlink
(正在读取数据库 ... 系统当前共安装有 418616 个文件和目录。)
准备解压 .../python3-minimal_3.8.2-0ubuntu2_amd64.deb  ...
正在解压 python3-minimal (3.8.2-0ubuntu2) 并覆盖 (3.8.2-0ubuntu2) ...
正在设置 python3-minimal (3.8.2-0ubuntu2) ...
(正在读取数据库 ... 系统当前共安装有 418617 个文件和目录。)
准备解压 .../0-python3_3.8.2-0ubuntu2_amd64.deb  ...
running python pre-rtupdate hooks for python3.8...
正在解压 python3 (3.8.2-0ubuntu2) 并覆盖 (3.8.2-0ubuntu2) ...
准备解压 .../1-python3-apt_2.0.1ubuntu0.20.04.1_amd64.deb  ...
正在解压 python3-apt (2.0.1ubuntu0.20.04.1) 并覆盖 (2.0.0ubuntu0.20.04.4) ...
准备解压 .../2-software-properties-common_0.99.9.12_all.deb  ...
正在解压 software-properties-common (0.99.9.12) 并覆盖 (0.99.9.11) ...
准备解压 .../3-python3-software-properties_0.99.9.12_all.deb  ...
正在解压 python3-software-properties (0.99.9.12) 并覆盖 (0.99.9.11) ...
准备解压 .../4-libpython3.8-stdlib_3.8.10-0ubuntu1~20.04.8_amd64.deb  ...
正在解压 libpython3.8-stdlib:amd64 (3.8.10-0ubuntu1~20.04.8) 并覆盖 (3.8.10-0ubu
ntu1~20.04.8) ...
准备解压 .../5-python3.8_3.8.10-0ubuntu1~20.04.8_amd64.deb  ...
正在解压 python3.8 (3.8.10-0ubuntu1~20.04.8) 并覆盖 (3.8.10-0ubuntu1~20.04.8) ..
.
正在设置 libssl1.1:i386 (1.1.1f-1ubuntu2.20) ...
正在设置 python-apt (2.0.1ubuntu0.20.04.1) ...
正在设置 vim-common (2:8.1.2269-1ubuntu5.20) ...
正在设置 libssl-dev:amd64 (1.1.1f-1ubuntu2.20) ...
正在设置 vim-runtime (2:8.1.2269-1ubuntu5.20) ...
正在设置 libpython3.8-stdlib:amd64 (3.8.10-0ubuntu1~20.04.8) ...
正在设置 python3.8 (3.8.10-0ubuntu1~20.04.8) ...
正在设置 vim (2:8.1.2269-1ubuntu5.20) ...
正在设置 python3 (3.8.2-0ubuntu2) ...
running python rtupdate hooks for python3.8...
running python post-rtupdate hooks for python3.8...
正在设置 vim-tiny (2:8.1.2269-1ubuntu5.20) ...
正在设置 python3-psutil (5.5.1-1ubuntu4) ...
正在设置 python3-configobj (5.0.6-4) ...
正在设置 python3-apt (2.0.1ubuntu0.20.04.1) ...
正在设置 unattended-upgrades (2.3ubuntu0.3) ...
正在安装新版本配置文件 /etc/kernel/postinst.d/unattended-upgrades ...
Traceback (most recent call last):
  File "/usr/bin/lsb_release", line 25, in <module>
    import lsb_release
ModuleNotFoundError: No module named 'lsb_release'
Traceback (most recent call last):
  File "/usr/bin/lsb_release", line 25, in <module>
    import lsb_release
ModuleNotFoundError: No module named 'lsb_release'
Traceback (most recent call last):
  File "/usr/bin/lsb_release", line 25, in <module>
    import lsb_release
ModuleNotFoundError: No module named 'lsb_release'
Traceback (most recent call last):
  File "/usr/bin/lsb_release", line 25, in <module>
    import lsb_release
ModuleNotFoundError: No module named 'lsb_release'
正在设置 python3-software-properties (0.99.9.12) ...
正在设置 python3-commandnotfound (20.04.4) ...
E: py3compile:183: cannot create directory /usr/lib/python3/dist-packages/Comman
dNotFound/__pycache__: FileNotFoundError(2, 'No such file or directory')
E: py3compile:183: cannot create directory /usr/lib/python3/dist-packages/Comman
dNotFound/db/__pycache__: FileNotFoundError(2, 'No such file or directory')
[Errno 2] No such file or directory: '/usr/lib/python3/dist-packages/CommandNotF
ound/__init__.py'
[Errno 2] No such file or directory: '/usr/lib/python3/dist-packages/CommandNotF
ound/db/creator.py'
[Errno 2] No such file or directory: '/usr/lib/python3/dist-packages/CommandNotF
ound/db/db.py'
[Errno 2] No such file or directory: '/usr/lib/python3/dist-packages/CommandNotF
ound/util.py'
dpkg: 处理软件包 python3-commandnotfound (--configure)时出错:
 已安装 python3-commandnotfound 软件包 post-installation 脚本 子进程返回错误状态
 1
正在设置 software-properties-common (0.99.9.12) ...
正在处理用于 desktop-file-utils (0.24-1ubuntu3) 的触发器 ...
正在处理用于 mime-support (3.64ubuntu1) 的触发器 ...
正在处理用于 hicolor-icon-theme (0.17-2) 的触发器 ...
正在处理用于 gnome-menus (3.36.0-1ubuntu1) 的触发器 ...
正在处理用于 libc-bin (2.31-0ubuntu9.7) 的触发器 ...
正在处理用于 systemd (245.4-4ubuntu3.20) 的触发器 ...
正在处理用于 man-db (2.9.1-1) 的触发器 ...
正在处理用于 dbus (1.12.16-2ubuntu2.3) 的触发器 ...
在处理时有错误发生:
 python3-commandnotfound
E: Sub-process /usr/bin/dpkg returned an error code (1)
➜  ~  sudo add-apt-repository ppa:gnome-terminator
Traceback (most recent call last):
  File "/usr/bin/lsb_release", line 25, in <module>
    import lsb_release
ModuleNotFoundError: No module named 'lsb_release'
Traceback (most recent call last):
  File "/usr/bin/lsb_release", line 25, in <module>
    import lsb_release
ModuleNotFoundError: No module named 'lsb_release'
Traceback (most recent call last):
  File "/usr/bin/add-apt-repository", line 12, in <module>
    from softwareproperties.SoftwareProperties import SoftwareProperties, shortcut_handler
  File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 68, in <module>
    from gi.repository import Gio
ModuleNotFoundError: No module named 'gi'
按照你的提示,现在错误变成了`ModuleNotFoundError: No module named 'gi'`,还有办法解决吗
头像
astolia
论坛版主
帖子: 6454
注册时间: 2008-09-18 13:11

Re: ModuleNotFoundError: No module named 'softwareproperties'

#6

帖子 astolia » 2023-11-05 12:03

你是之前手动删除过/usr/lib/python3/dist-packages/下面的文件吧?这么多的模块都没了。
cs5117155 写了: 2023-11-04 22:04 按照你的提示,现在错误变成了`ModuleNotFoundError: No module named 'gi'`
一个软件方面的常识是,如果报了多个错,应该要按顺序依次解决。因为后续的错误可能是前面的错误的衍生品。
在报gi找不到时,前面还报了lsb_release和/usr/lib/python3/dist-packages/CommandNotFound/下面的一些文件找不到。别只盯着最后一个错。

反正对于这种文件/模块找不到的错误,就是重新安装包含这些模块/文件的包就行。
查询文件对应的包名的命令是

代码: 全选

dpkg-query -S 文件名/路径
ubuntu把python3第三方软件的模块都放到/usr/lib/python3/dist-packages/下面,所以当它报ModuleNotFoundError: No module named 'lsb_release',你就执行

代码: 全选

dpkg-query -S lsb_release
,把它列出来的对应/usr/lib/python3/dist-packages/lsb_release*文件的包名记下来重新安装

报cannot create directory /usr/lib/python3/dist-packages/CommandNotFound/__pycache__: FileNotFoundError(2, 'No such file or directory')时,说明没法在/usr/lib/python3/dist-packages/CommandNotFound/下创建__pycache__目录,你就去查询/usr/lib/python3/dist-packages/CommandNotFound由哪个包创建

像这种直接的[Errno 2] No such file or directory: '/usr/lib/python3/dist-packages/CommandNotFound/__init__.py',就直接查询文件名了
cs5117155
帖子: 33
注册时间: 2018-06-09 17:47

Re: ModuleNotFoundError: No module named 'softwareproperties'

#7

帖子 cs5117155 » 2023-11-07 11:24

按照你的指导,我尝试命令`dpkg-query -S lsb_release`后,

代码: 全选

➜  dist-packages 
dpkg-query -S lsb_release
apparmor: /etc/apparmor.d/lsb_release
lsb-release: /usr/share/man/man1/lsb_release.1.gz
lsb-release: /usr/lib/python3/dist-packages/lsb_release.py
lsb-release: /usr/share/pyshared/lsb_release.py
lsb-release: /usr/lib/python2.7/dist-packages/lsb_release.py
lsb-release: /usr/bin/lsb_release
发现没有显示其余` lsb_release*`扩展名的包,我继续使用 ` sudo apt-get install --reinstall lsb-release`进行重新安装

代码: 全选

➜  dist-packages sudo apt-get install --reinstall lsb-release
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
升级了 0 个软件包,新安装了 0 个软件包,重新安装了 1 个软件包,要卸载 0 个软件包,有 402 个软件包未被升级。
有 1 个软件包没有被完全安装或卸载。
需要下载 10.6 kB 的归档。
解压缩后会消耗 0 B 的额外空间。
获取:1 http://mirrors.aliyun.com/ubuntu focal/main amd64 lsb-release all 11.1.0ubuntu2 [10.6 kB]
已下载 10.6 kB,耗时 10秒 (1,012 B/s)  
(正在读取数据库 ... 系统当前共安装有 418618 个文件和目录。)
准备解压 .../lsb-release_11.1.0ubuntu2_all.deb  ...
正在解压 lsb-release (11.1.0ubuntu2) 并覆盖 (11.1.0ubuntu2) ...
正在设置 lsb-release (11.1.0ubuntu2) ...
正在设置 python3-commandnotfound (20.04.4) ...
E: py3compile:183: cannot create directory /usr/lib/python3/dist-packages/CommandNotFound/__pycache__: FileNotFoundError(2, 'No such file or directory')
E: py3compile:183: cannot create directory /usr/lib/python3/dist-packages/CommandNotFound/db/__pycache__: FileNotFoundError(2, 'No such file or directory')
[Errno 2] No such file or directory: '/usr/lib/python3/dist-packages/CommandNotFound/__init__.py'
[Errno 2] No such file or directory: '/usr/lib/python3/dist-packages/CommandNotFound/db/creator.py'
[Errno 2] No such file or directory: '/usr/lib/python3/dist-packages/CommandNotFound/db/db.py'
[Errno 2] No such file or directory: '/usr/lib/python3/dist-packages/CommandNotFound/util.py'
dpkg: 处理软件包 python3-commandnotfound (--configure)时出错:
 已安装 python3-commandnotfound 软件包 post-installation 脚本 子进程返回错误状态 1
正在处理用于 man-db (2.9.1-1) 的触发器 ...
在处理时有错误发生:
 python3-commandnotfound
E: Sub-process /usr/bin/dpkg returned an error code (1)
然后我看到错误是由于`py3compile:183: cannot create directory /usr/lib/python3/dist-packages/CommandNotFound/__pycache__:`
我进去该目录查看,发现没有这个文件夹__pycache__,而且连CommandNotFound文件夹也没有

代码: 全选

➜  dist-packages pwd
/usr/lib/python3/dist-packages
➜  dist-packages ll -l         
总用量 620K
drwxr-xr-x 4 root root 4.0K 11月  4 21:56 apt
-rw-r--r-- 1 root root  59K 3月  14  2023 apt_inst.cpython-38-x86_64-linux-gnu.so
drwxr-xr-x 2 root root 4.0K 11月  4 21:56 apt_inst-stubs
-rw-r--r-- 1 root root 351K 3月  14  2023 apt_pkg.cpython-38-x86_64-linux-gnu.so
drwxr-xr-x 2 root root 4.0K 11月  4 21:56 apt_pkg-stubs
drwxr-xr-x 3 root root 4.0K 11月  4 21:56 aptsources
drwxr-xr-x 2 root root 4.0K 8月   3 11:46 configobj-5.0.6.egg-info
-rw-r--r-- 1 root root  88K 4月   5  2020 configobj.py
lrwxrwxrwx 1 root root   38 12月 24  2019 lsb_release.py -> ../../../share/pyshared/lsb_release.py
drwxr-xr-x 4 root root 4.0K 11月  4 21:56 psutil
-rw-r--r-- 1 root root  26K 2月  18  2020 psutil-5.5.1.egg-info
drwxr-xr-x 2 root root 4.0K 11月  4 21:56 __pycache__
drwxr-xr-x 2 root root 4.0K 11月  4 21:56 python_apt-2.0.1+ubuntu0.20.4.1.egg-info
drwxr-xr-x 4 root root 4.0K 11月  4 21:56 softwareproperties
drwxr-xr-x 2 root root 4.0K 11月  2 10:22 unattended_upgrades-0.1.egg-info
-rw-r--r-- 1 root root  47K 8月  26  2014 validate.py
-rw-r--r-- 1 root root   21 8月  26  2014 _version.py
接着我尝试`pip3 install py3compile`

代码: 全选

➜  dist-packages pip3 install py3compile
Defaulting to user installation because normal site-packages is not writeable
ERROR: Could not find a version that satisfies the requirement py3compile (from versions: none)
ERROR: No matching distribution found for py3compile
但它为何提示我找不到对应版本安装,我这样分析问题对吗
头像
astolia
论坛版主
帖子: 6454
注册时间: 2008-09-18 13:11

Re: ModuleNotFoundError: No module named 'softwareproperties'

#8

帖子 astolia » 2023-11-08 10:45

cs5117155 写了: 2023-11-07 11:24 但它为何提示我找不到对应版本安装,我这样分析问题对吗
你的思路可以说从根本上就错了。

首先debian系的linux发行版,其软件源基本思想之一是保证源中所有软件的所有依赖也都在源中。所以当你在用官方软件源里面的软件,遇到某个python模块找不到时,首先该做的就是用apt从源里安装,而不是用pip从外部安装,因为那些软件依赖的是源中特定版本的python模块,这些模块本身也可能经过一些修改以符合发行版自身的一些规范,这是你用pip安装的版本不一定能满足的。

具体分析你的问题,其实下面这段就能很好的说明关于软件包安装的一些事了
cs5117155 写了: 2023-11-07 11:24

代码: 全选

准备解压 .../lsb-release_11.1.0ubuntu2_all.deb  ...
正在解压 lsb-release (11.1.0ubuntu2) 并覆盖 (11.1.0ubuntu2) ...
正在设置 lsb-release (11.1.0ubuntu2) ...
这三行对应了软件包安装的三个阶段:
1、安装预处理。这个阶段是在提取出软件包中的meta文件放到/var/lib/dpkg/info下面,并执行其中的preinst脚本
2、安装文件。这个阶段是具体的解压包里的文件到文件系统上
3、安装后处理。这个阶段是在执行软件包中的postinst脚本
preinst和postinst脚本不是每一个包都有。顺带一提,用dpkg-query -S查询时,本质上是在搜索/var/lib/dpkg/info下面的.list文件,其中记录了要安装到文件系统上的文件列表。所以即使文件系统上的文件已经被删除了,只要这些list文件还在,一样能查询到是属于哪个包的。
这三个阶段走完没问题,就说明这个包已经安装好了。

知道了上面的知识,看下面的就很好理解了
cs5117155 写了: 2023-11-07 11:24

代码: 全选

正在设置 python3-commandnotfound (20.04.4) ...
E: py3compile:183: cannot create directory /usr/lib/python3/dist-packages/CommandNotFound/__pycache__: FileNotFoundError(2, 'No such file or directory')
E: py3compile:183: cannot create directory /usr/lib/python3/dist-packages/CommandNotFound/db/__pycache__: FileNotFoundError(2, 'No such file or directory')
[Errno 2] No such file or directory: '/usr/lib/python3/dist-packages/CommandNotFound/__init__.py'
[Errno 2] No such file or directory: '/usr/lib/python3/dist-packages/CommandNotFound/db/creator.py'
[Errno 2] No such file or directory: '/usr/lib/python3/dist-packages/CommandNotFound/db/db.py'
[Errno 2] No such file or directory: '/usr/lib/python3/dist-packages/CommandNotFound/util.py'
dpkg: 处理软件包 python3-commandnotfound (--configure)时出错:
 已安装 python3-commandnotfound 软件包 post-installation 脚本 子进程返回错误状态 1
这已经是走到第三阶段了,也就是文件之前已经被解压到文件系统上了。但现在找不到,我也不知道你到底做了什么导致文件失踪。即使不去看/var/lib/dpkg/info/python3-commandnotfound.list,从/usr/lib/python3/dist-packages/CommandNotFound/和python3-commandnotfound的相似性也可以猜想到这些文件就是由python3-commandnotfound安装的,所以你该做的是重装python3-commandnotfound包,而不是尝试去重装py3compile
cs5117155
帖子: 33
注册时间: 2018-06-09 17:47

Re: ModuleNotFoundError: No module named 'softwareproperties'

#9

帖子 cs5117155 » 2023-11-08 16:41

Cannot add PPA: 'ppa:~gnome-terminator/ubuntu/ppa'.
ERROR: '~gnome-terminator' user or team does not exist.

再次感谢你耐心的解答,问题已经解决,感谢感谢。你有些回答让我补充一些知识点了,我想回顾一下我处理问题的思路,希望能再次指出我的思路错误点。

代码: 全选

➜  ~ sudo add-apt-repository ppa:gnome-terminator
Traceback (most recent call last):
  File "/usr/bin/add-apt-repository", line 12, in <module>
    from softwareproperties.SoftwareProperties import SoftwareProperties, shortcut_handler
  File "/usr/lib/python3/dist-packages/softwareproperties/SoftwareProperties.py", line 68, in <module>
    from gi.repository import Gio
ModuleNotFoundError: No module named 'gi'
我使用你教的方式查找

代码: 全选

➜  ~ dpkg-query -S  gi/usr/lib/python3/dist-packages         
dpkg-query: 没有找到与 *gi/usr/lib/python3/dist-packages* 相匹配的路径
然后我直接install gi,

代码: 全选

➜  ~ sudo apt-get install gi                     
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
E: 无法定位软件包 gi
发现没有这个安装包后,然后百度一圈,大概花了15分钟,现在想想真是傻了,找到这个帖子https://www.jianshu.com/p/f8efc74a083c,提示我以下操作。

代码: 全选

sudo ln -s /usr/lib/python3/dist-packages/gi/_gi.cpython-{36m,37m}-x86_64-linux-gnu.so
我看到它的错误跟我很类似,就想直接复制粘贴替换了,还好觉得应该不是这样的,不然又搞砸
这时我又继续看看报错信息,有softwareproperties关键词,我又进行这个安装

代码: 全选

➜  ~ sudo apt-get install softwareproperties  
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
E: 无法定位软件包 softwareproperties
然后我继续看看你解答,感觉你安装包都有一个python3-前缀,我试下python3-gi 还真行了

代码: 全选

➜  ~ sudo apt-get install --reinstall python3-gi       
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
升级了 0 个软件包,新安装了 0 个软件包,重新安装了 1 个软件包,要卸载 0 个软件包,有 401 个软件包未被升级。
需要下载 165 kB 的归档。
解压缩后会消耗 0 B 的额外空间。
获取:1 http://mirrors.aliyun.com/ubuntu focal/main amd64 python3-gi amd64 3.36.0-1 [165 kB]
已下载 165 kB,耗时 1秒 (246 kB/s)  
(正在读取数据库 ... 系统当前共安装有 418618 个文件和目录。)
准备解压 .../python3-gi_3.36.0-1_amd64.deb  ...
正在解压 python3-gi (3.36.0-1) 并覆盖 (3.36.0-1) ...
正在设置 python3-gi (3.36.0-1) ...
接着又遇到无法安装gnome-terminator,还好这个百度了3分钟,就解决了

代码: 全选

➜  ~ sudo add-apt-repository ppa:gnome-terminator
Cannot add PPA: 'ppa:~gnome-terminator/ubuntu/ppa'.
ERROR: '~gnome-terminator' user or team does not exist.


➜  ~ sudo apt-get install --reinstall ca-certificates
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
升级了 0 个软件包,新安装了 0 个软件包,重新安装了 1 个软件包,要卸载 0 个软件包,有 401 个软件包未被升级。
需要下载 152 kB 的归档。
解压缩后会消耗 0 B 的额外空间。
获取:1 http://mirrors.aliyun.com/ubuntu focal-updates/main amd64 ca-certificates all 20230311ubuntu0.20.04.1 [152 kB]
已下载 152 kB,耗时 0秒 (307 kB/s)      
正在预设定软件包 ...
(正在读取数据库 ... 系统当前共安装有 418618 个文件和目录。)
准备解压 .../ca-certificates_20230311ubuntu0.20.04.1_all.deb  ...
正在解压 ca-certificates (20230311ubuntu0.20.04.1) 并覆盖 (20230311ubuntu0.20.04.1) ...
正在设置 ca-certificates (20230311ubuntu0.20.04.1) ...
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
正在处理用于 man-db (2.9.1-1) 的触发器 ...
正在处理用于 ca-certificates (20230311ubuntu0.20.04.1) 的触发器 ...
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.

➜  ~ sudo add-apt-repository ppa:gnome-terminator    
 Ubuntu packages of Terminator, the robot future of terminals
 更多信息: https://launchpad.net/~gnome-terminator/+archive/ubuntu/ppa
按 [ENTER] 继续或 Ctrl-c 取消安装。

命中:1 http://mirrors.aliyun.com/ubuntu focal InRelease
命中:2 https://download.docker.com/linux/ubuntu focal InRelease                                                                                                                                  
获取:3 http://mirrors.aliyun.com/ubuntu focal-updates InRelease [114 kB]                                                                                                                         
忽略:4 https://deepin-wine.i-m.dev  InRelease                                                                                                                                                    
获取:5 http://dl.google.com/linux/chrome/deb stable InRelease [1,825 B]                                                                             
获取:6 http://mirrors.aliyun.com/ubuntu focal-backports InRelease [108 kB]                                                                                                             
错误:5 http://dl.google.com/linux/chrome/deb stable InRelease                                                                                                  
  由于没有公钥,无法验证下列签名: NO_PUBKEY 4EB27DB2A3B88B8B
获取:7 https://dl.cloudsmith.io/public/asbru-cm/release/deb/ubuntu focal InRelease [4,976 B]                                                                   
获取:8 http://mirrors.aliyun.com/ubuntu focal-security InRelease [114 kB]                                                                                                     
获取:9 https://deepin-wine.i-m.dev  Release [1,611 B]                                                                                      
忽略:10 https://deepin-wine.i-m.dev  Release.gpg                                                                                           
获取:11 http://mirrors.aliyun.com/ubuntu focal-updates/main i386 Packages [906 kB]                                             
获取:12 https://deepin-wine.i-m.dev  Packages [106 kB]                                                                                    
获取:13 http://ppa.launchpad.net/gnome-terminator/ppa/ubuntu focal InRelease [17.5 kB]                                                    
获取:14 http://mirrors.aliyun.com/ubuntu focal-updates/main amd64 Packages [2,959 kB]                                                        
获取:15 https://deb.termius.com squeeze InRelease [4,309 B]                                                                                               
获取:16 https://deb.termius.com squeeze/main amd64 Packages [849 B]                                                                                         
命中:17 https://dl.winehq.org/wine-builds/ubuntu bionic InRelease                                                                                  
获取:18 http://mirrors.aliyun.com/ubuntu focal-updates/main Translation-en [481 kB]                                                                                                              
获取:19 http://mirrors.aliyun.com/ubuntu focal-updates/main amd64 DEP-11 Metadata [275 kB]                                                                                                       
获取:20 http://mirrors.aliyun.com/ubuntu focal-updates/universe amd64 Packages [1,128 kB]                                                                                                        
获取:21 http://mirrors.aliyun.com/ubuntu focal-updates/universe i386 Packages [753 kB]                                                                                                           
获取:22 http://mirrors.aliyun.com/ubuntu focal-updates/universe Translation-en [270 kB]                                                                                                          
获取:23 http://mirrors.aliyun.com/ubuntu focal-updates/universe amd64 DEP-11 Metadata [414 kB]                                                                                                   
获取:24 http://mirrors.aliyun.com/ubuntu focal-updates/multiverse amd64 DEP-11 Metadata [940 B]                                                                                                  
获取:25 http://mirrors.aliyun.com/ubuntu focal-backports/main amd64 DEP-11 Metadata [7,996 B]                                                                                                    
获取:26 http://mirrors.aliyun.com/ubuntu focal-backports/universe amd64 DEP-11 Metadata [30.6 kB]                                                    ➜  ~ sudo add-apt-repository ppa:gnome-terminator    
 Ubuntu packages of Terminator, the robot future of terminals
 更多信息: https://launchpad.net/~gnome-terminator/+archive/ubuntu/ppa
按 [ENTER] 继续或 Ctrl-c 取消安装。

代码: 全选

sudo apt install terminator
感觉我解决问题思路,都是瞎猜,每个命令乱试
头像
astolia
论坛版主
帖子: 6454
注册时间: 2008-09-18 13:11

Re: ModuleNotFoundError: No module named 'softwareproperties'

#10

帖子 astolia » 2023-11-08 20:51

cs5117155 写了: 2023-11-08 16:41 我使用你教的方式查找

代码: 全选

➜  ~ dpkg-query -S  gi/usr/lib/python3/dist-packages         
dpkg-query: 没有找到与 *gi/usr/lib/python3/dist-packages* 相匹配的路径
我寻思我也没教过你把软件包名放到/usr/lib/python3/dist-packages前面构造出这么一个路径了?你再去看看我6楼的原话
另外呢,dpkg-query -S的搜索也不是单纯的文本匹配,所以你搜/abc/x是搜不出/abc/xyz的。如果会用grep命令的话,搜.list文件是个更好的选择
cs5117155 写了: 2023-11-08 16:41 然后我继续看看你解答,感觉你安装包都有一个python3-前缀,我试下python3-gi 还真行了
在你解决了这个问题后,有没有去总结出一套通用的找出名称中包含特定文本的软件包的方法呢?总不能指望次次都能碰上吧
cs5117155 写了: 2023-11-08 16:41 感觉我解决问题思路,都是瞎猜,每个命令乱试
这也和时代有关系。就拿安装软件包这个事来说,当年我刚接触ubuntu时,还没有现在的这些个软件商店,除了命令行外的选择只有一个:新立德软件包管理器(synaptic)。它也确实好用,想看看包的依赖关系、包含的文件等都清楚明了,搜索之类的功能也很方便,到现在我也一直在用它。到后来软件商店出来,新立德不再默认安装,很多新人都不知道有这个东西,又不会或不愿意去读命令的--help说明和manpages,所以对一些很基础的东西都不了解,遇到一些实际上很简单的问题就抓瞎了
cs5117155
帖子: 33
注册时间: 2018-06-09 17:47

Re: ModuleNotFoundError: No module named 'softwareproperties'

#11

帖子 cs5117155 » 2023-11-09 10:19

2023-11-09_09-27.png
6楼这里,你不是告诉文件名放前面吗

代码: 全选

dpkg-query -S 文件名/路径
然后我就试了这个

代码: 全选

➜  dist-packages dpkg-query -S /usr/lib/python3/dist-packages/gi        
python3-gi: /usr/lib/python3/dist-packages/gi
总结出一套通用的找出名称中包含特定文本的软件包的方法,以前我也是通过apt install安装软件包,如果有依赖缺失会提示我,我继续安装缺失的包就行了,可是这次都是提示Python代码模块出错,就开始甍了。然后开始搜很大概4-5天谷歌,很多文章都只是告诉我,大概可能也跟我搜索关键词有关系,一直用`No module named 'softwareproperties'`去搜索

代码: 全选

sudo apt install --reinstall python3 python3-minimal python3.8 python3.8-minimal
而我的转折点是你给我

代码: 全选

sudo apt install --reinstall  libpython3.8-minimal libpython3.8-stdlib
为什么你知道需要安装libpython相关的包,是因为对python代码有了解吗,而且一开始你说光有py3clean、py3compile这些,但debpython模块没了,我就反思,为什么你会知道这些模块关系,我找几个谷歌百度,没有一个这样明细说的 :Cry 。如果单纯看报错,还真没有提示libpython相关的字眼给我
头像
astolia
论坛版主
帖子: 6454
注册时间: 2008-09-18 13:11

Re: ModuleNotFoundError: No module named 'softwareproperties'

#12

帖子 astolia » 2023-11-09 20:08

cs5117155 写了: 2023-11-09 10:19 6楼这里,你不是告诉文件名放前面吗
啊?用/来代替或字分隔多个项目应该是种很常见的用法吧,填表时没见过 “____省/直辖市/自治区”这种写法的?
cs5117155 写了: 2023-11-09 10:19 为什么你知道需要安装libpython相关的包,是因为对python代码有了解吗,而且一开始你说光有py3clean、py3compile这些,但debpython模块没了,我就反思,为什么你会知道这些模块关系,我找几个谷歌百度,没有一个这样明细说的 :Cry 。如果单纯看报错,还真没有提示libpython相关的字眼给我
思路我上面已经告诉过你了啊,你在1楼尝试重装python3-software-properties时,报了一堆错,实际上不就只有一个debpython模块找不到吗。我就dpkg-query -S debpython搜了一下它在哪个包里面,结果是在python3-minimal,然后看了一下python3-minimal的内容,发现里面有py3clean和py3compile。debpython找不到的错误也是在执行py3clean和py3compile时报的。这不就很明显了,属于同一个包的文件一些能找到一些不能找到,那就重装呗。一个python3最基本的包都这样的,其他的包我觉着也悬,就干脆让你重装python3以及它依赖的包了
cs5117155
帖子: 33
注册时间: 2018-06-09 17:47

Re: ModuleNotFoundError: No module named 'softwareproperties'

#13

帖子 cs5117155 » 2023-11-14 10:46

可能我是说漏一个点,就是你怎么知道是libpython这个包

代码: 全选

libpython x.x-
因为我之前就尝试```install python3-minimal```,但依然提示解决不了

代码: 全选

sudo apt install --reinstall python3 python3-minimal python3.8 python3.8-minimal
dpkg-query -S debpython,只是提示了python3-minimal包,但libpython包你从哪里知道的

代码: 全选

➜  ~ dpkg-query -S debpython
python3-minimal: /usr/share/python3/debpython/version.py
python2-minimal: /usr/share/python/debpython/version.py
python2-minimal: /usr/share/python/debpython/depends.py
python3-minimal: /usr/share/python3/debpython/__init__.py
python2-minimal: /usr/share/python/debpython/option.py
python2-minimal: /usr/share/python/debpython/__init__.py
python2-minimal: /usr/share/python/debpython/namespace.py
python3-minimal: /usr/share/python3/debpython
python2-minimal: /usr/share/python/debpython/tools.py
python3-minimal: /usr/share/python3/debpython/interpreter.py
python2-minimal: /usr/share/python/debpython
python2-minimal: /usr/share/python/debpython/debhelper.py
python3-minimal: /usr/share/python3/debpython/files.py
python2-minimal: /usr/share/python/debpython/files.py
python2-minimal: /usr/share/python/debpython/pydist.py
python3-minimal: /usr/share/python3/debpython/option.py
然后我在packages.ubuntuhttps://packages.ubuntu.com/search?sear ... c&arch=any上面查找包含py3compile文件的包,只显示一个/usr/bin/py3compile python3-minimal。
很好奇这个libpython包,你怎么找到
头像
astolia
论坛版主
帖子: 6454
注册时间: 2008-09-18 13:11

Re: ModuleNotFoundError: No module named 'softwareproperties'

#14

帖子 astolia » 2023-11-14 15:24

cs5117155 写了: 2023-11-14 10:46 可能我是说漏一个点,就是你怎么知道是libpython这个包
我上面其实已经说过了
astolia 写了: 2023-11-09 20:08 就干脆让你重装python3以及它依赖的包
有些话在之前的几个帖子我就想说,但最终还是删掉了。现在看到你还在这么问,我觉得还是说一下好。

包括你在内的很多人,缺乏自主学习的意识。拿这个例子来说,当你找到python3-minimal这一步时,你有没有想过,python3-minimal到底是什么?python3的意义你应该懂,minimal呢?如果不认识这个单词,去查过没有?如果认识,想过为什么包名要带有minimal?这个是minimal,那有没有非minimal的?当你有这个好奇心,这么一步步探索下来,自然就会发现libpython3.8-*的存在

再比如,dpkg-query -S能查找包的内容,那它有其他什么参数能实现其他功能吗?我上面提到过的用grep来代替dpkg-query -S,你试过了吗?同样是上面提到过的新立得工具(上面我把字打错了,但还是可以在百度/bing/google上搜出来),你体验过了吗?这些可能和你当前的目标没啥直接关系,但长期这么一点点积累下来,手上能用的工具越来越多,对一些底层原理的认知越来越清楚,以后再遇到类似的事,就不会再瞎折腾一通了。比如你最开始的问题,想在ubuntu 20.04上安装低版本的python3。如果你用过新立得(系统上的软件商店应该也可以),那么很容易发现20.04的软件源里除了默认的python3.8之外,还存在python3.9,这两个还可以同时安装上不冲突。这样你自然会朝着多版本python3共存的方向去想,而不是先急冲冲把系统上的python3.8删了搞出后面一堆事来
cs5117155
帖子: 33
注册时间: 2018-06-09 17:47

Re: ModuleNotFoundError: No module named 'softwareproperties'

#15

帖子 cs5117155 » 2023-11-15 17:21

我自学能力确实很差,所以想开始一步步去改善自已思维,以前总喜欢重装,解决99%问题,但后来其实发现,只知道解决问题,但不知为何解决,觉得花一两个星期解决一个问题,太耗时间成本了。
一开始你叫我用grep搜索.list文件,当时就有点迷糊,为什么喊我用grep搜*.list文件,就没有怎么深究,然后你在8楼的时候回复本质上是在搜索/var/lib/dpkg/info下面的.list文件,才恍然大悟。然后就百度一下命令,还挺好用的。

代码: 全选

➜  ~ grep -r --include=\*.list lsb_release /var/lib/dpkg/info
/var/lib/dpkg/info/lsb-release.list:/usr/bin/lsb_release
/var/lib/dpkg/info/lsb-release.list:/usr/share/man/man1/lsb_release.1.gz
/var/lib/dpkg/info/lsb-release.list:/usr/share/pyshared/lsb_release.py
/var/lib/dpkg/info/lsb-release.list:/usr/lib/python2.7/dist-packages/lsb_release.py
/var/lib/dpkg/info/lsb-release.list:/usr/lib/python3/dist-packages/lsb_release.py
/var/lib/dpkg/info/apparmor.list:/etc/apparmor.d/lsb_release
然后你告诉我用新立得,这两天安装了一下,摸索着玩,发现挺爽,真的省了以前一堆烦恼,它自动帮我安装一些依赖,还会告诉我需要什么依赖,想想以前我用这个新立得安装软件,会省很多烦恼,这两年只会重装解决问题,太失败了
回复