python no module name_Python升级导致 no module named xxx

在OMV5(基于Debian 10)上,由于Python升级到3.8,遇到了'No module named apt'的问题。通过将/usr/lib/python3/dist-packages中的apt和apt_pkg模块复制到/usr/local/lib/python3.8/,并改名以匹配新Python版本,成功解决了在执行apt-get update时的模块找不到错误。
摘要由CSDN通过智能技术生成

背景说明

由于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

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

import apt

File "/usr/local/lib/python3.8/apt/__init__.py", line 23, in

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 ,顺利解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值