背景说明
由于omv5是基于debian10,其自带python版本位3.7.3
在调用pip3 时发生了insecurewarning,详情见此前的文章,链接如下
问题描述
当使用apt-get install xxx包 或者 apt-get update 时,会报错如下
Traceback (most recent call last):
File "/usr/sbin/omv-mkaptidx", line 38, in <module>
import apt
ModuleNotFoundError: No module named 'apt'
解决过程
查看了python3.8下面,的确是没有apt 的模块,尝试安装了apt_wrapper没有解决,但是在/usr/lib/python3/dist-package 下是有apt 的模块的
采用了一种最傻的办法,把 /usr/lib/python3/dist-packages 中的文件全部复制到新/usr/local/lib/python3.8/ ,执行以下命令
cp -r /usr/lib/python3/dist-packages/ /usr/local/lib/python3.8
重新执行 apt-get update
此时apt 已经能找到了,但是找不到apt_pkg
也不能重新安装python3-pip 或者 python3-apt, 报错代码如下:
Traceback (most recent call last):
File "/usr/sbin/omv-mkaptidx", line 38, in <module>
import apt
File "/usr/local/lib/python3.8/apt/__init__.py", line 23, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
同样,可以把apt_pkg的文件从 /usr/lib/python3/dist-packages 拷贝到/usr/local/lib/python3.8/ ,并且相应改名,命令如下。由于并不太了解这两个文件在3.8的版本下应该怎么命令,我做了两个副本,一个叫38m,一个叫38
cp /usr/lib/python3/dist-packages/apt_pkg.cpython-37m-x86_64-linux-gnu.so /usr/local/lib/python3.8/apt_pkg.cpython-38m-x86_64-linux-gnu.so
cp /usr/lib/python3/dist-packages/apt_pkg.cpython-37m-x86_64-linux-gnu.so /usr/local/lib/python3.8/apt_pkg.cpython-38-x86_64-linux-gnu.so
重新执行apt-get update ,顺利解决。