首页 > 系统相关 >ModuleNotFoundError: No module named 'dnf' when running yum or dnf

ModuleNotFoundError: No module named 'dnf' when running yum or dnf

时间:2024-08-29 17:17:46浏览次数:11  
标签:named dnf No href yum line rpm python3

这两天干了一件很坑的事情:把  linux 服务器自带的 python3.6卸载了,然后就用不了 yum 和 dnf 了。所用的命令和大致经过和这个帖子几乎一模一样:

 

I have a friend who met the same problem.

He tried to uninstall python3.7 in linux server by some amazing cmd rpm -qa|grep python3|xargs rpm -ev --allmatches --nodeps and whereis python3 |xargs rm -frv.
This caused the yum and dnf to break.

I changed the /usr/bin/yum to use a local python3.8 version, but it caused ModuleNotFoundError: No module named 'dnf' at last, and didn't solved it.

It is not a good way to download many rpm packages on the Internet. And I can't use yum either. But I have another same linux OS server, so I've tried to copy the correlation files about python3.7.

然后博主还给出了解决方案:

$ rpm -ql python3-3.7.0-9.h4.eulerosv2r8.aarch64> py.log
$ while read -r line;do dirname $line |xargs -I {} ssh root@$remoteip "mkdir -p {}" ;scp $line root@$remoteip:$line  ;done<py.log

$ rpm -ql python3-libs-3.7.0-9.h4.eulerosv2r8.aarch64 >pylib.log
$ while read -r line;do dirname $line |xargs -I {} ssh root@$remoteip "mkdir -p {}" ;scp $line root@$remoteip:$line  ;done<pylib.log

scp -r /usr/lib/python3.7/site-packages root@$remoteip:/usr/lib/python3.7/

 

但是我没有相同的 linux服务器可供使用,所以我就采用了他所说的 "not a good way" 的方式,对, 就是把 python3*.rpm 都下载下来然后手动安装。 我选用的镜像源是 阿里云的 centos8,其中以 python3开头的rpm包有108个,就写个爬虫自动化下载了。

import os
import requests
from bs4 import BeautifulSoup

# 要爬取的 URL
url = "http://mirrors.aliyun.com/centos/8/BaseOS/x86_64/os/Packages/"

# 创建一个用于保存下载文件的目录
download_dir = "py36_rpm"
os.makedirs(download_dir, exist_ok=True)

# 发送请求并获取页面内容
response = requests.get(url)
response.raise_for_status()  # 确保请求成功

# 解析页面内容
soup = BeautifulSoup(response.text, 'html.parser')

# 查找所有以 'python3' 开头的 rpm 包链接
for link in soup.find_all('a'):
    href = link.get('href')
    if href and href.startswith('python3') and href.endswith('.rpm'):
        # 构建完整的下载链接
        download_url = url + href
        # 下载文件并保存
        print(f"Downloading {href}...")
        rpm_response = requests.get(download_url)
        with open(os.path.join(download_dir, href), 'wb') as f:
            f.write(rpm_response.content)

print("All files downloaded.")

通过这个脚本把以 python3开头的rpm包都下载到了 py36_rpm 文件夹下,然后上传到了服务器上,执行一下命令:

rpm -ivh --force --nodeps python3*.rpm

yum 和 dnf 终于可以用了。

 

经过这个事也得长教训了,不要用 ` rpm -qa|grep python3|xargs rpm -ev --allmatches --nodeps and whereis python3 |xargs rm -frv` 方式去卸载 python ,真的好坑!!

 

参考链接:

https://stackoverflow.com/questions/53894712/modulenotfounderror-no-module-named-dnf-when-running-yum-or-dnf

标签:named,dnf,No,href,yum,line,rpm,python3
From: https://www.cnblogs.com/neozheng/p/18387080

相关文章

  • NOI2024
    阅读理解题如果你发现签到题的代码难以实现,那往往是因为你理解错题意了即使你考0分,只要大家都考0分,你仍然可以成为第一名呀——虽然这很反常识点击查看代码#include<iostream>usingnamespacestd;inta[200005],b[200005];intmain(){ios::sync_with_stdio(fal......
  • 初入nodejs
    序言:为了真正实现自己上线一个软件从现在开始学习后端初入nodejs学到的内容:首先理解的后端流程大概轮廓是创建服务器编写路由编写路由拦截器(GET、POST)连接数据库实现数据库的增删改查接着就是学习express.js和Koa.js这两个基于nodejs的框架我们一步一步来创建服......
  • Mybatis-puls中select查询方法报错Can not find table primary key in Class
    1、项目参数springboot2.6.13jdk8Mybatis-Plus3.5.42、问题描述Mybatis-puls中select查询方法报错CannotfindtableprimarykeyinClass,org.apache.ibatis.binding.BindingException:Invalidboundstatement(notfound):com.example.dao.FLowerDao.selectById3、......
  • 训练yolov5时出现报错:AttributeError: ‘FreeTypeFont‘ object has no attribute ‘g
    报错:Traceback(mostrecentcalllast):File"D:\anaconda3_xz\envs\luopytorch\lib\threading.py",line932,in_bootstrap_innerself.run()File"D:\anaconda3_xz\envs\luopytorch\lib\threading.py",line870,inrunself._target(*s......
  • OpenCV(cv::normalize())
    目录1.函数原型:2.使用场景:3.示例:cv::normalize()是OpenCV中用于将数据值缩放到指定范围或对数据进行归一化处理。1.函数原型:voidcv::normalize(InputArraysrc,OutputArraydst,doublealpha=1,doublebeta=0,intnorm_type=NORM_L2,intdtype=-1,I......
  • gyp GET https://nodejs.org/download/release/v20.15.0/node-v20.15.0-headers.tar.g
    如图我执行yarn关于node会报错:gyphttpGEThttps://nodejs.org/download/release/v20.15.0/node-v20.15.0-headers.tar.gzgyphttpfetchGEThttps://nodejs.org/download/release/v20.15.0/node-v20.15.0-headers.tar.gzattempt1failedwithETIMEDOUTgypWARNins......
  • nginx: [emerg] unknown directive “stream“ in /etc/nginx/nginx.conf
    在nginx中做tcp端口转发时,在nginx中加入#四层负载不在http模块里面,和http模块同级别stream{upstreammysql{ server127.0.0.1:3306;}upstreamredis{server127.0.0.1:6379;}upstreammongodb{server127.0.0.1:27017;......
  • NocoBase 1.3:REST API 数据源、移动端 V2 和更多功能
    从v1.3开始,NocoBase提供两个关键分支:main和next。main分支,beta版本,专注于缺陷修复,确保为用户提供一个稳定的版本;next分支,alpha版本,包含一些正式未发布的新特性,这个版本不稳定,适用于开发者或测试人员,用于提前体验新功能或进行兼容性测试。本次1.3beta的新特性包括......
  • No module named 'mininet.cli'报错处理
    Nomodulenamed'mininet.cli'报错处理问题描述在命令行中输入python,在解释器中执行frommininet.cliimportCLI不会报错的前提下,使用makerun编译运行程序时,出现如下报错:Traceback(mostrecentcalllast):File"../../utils/run_exercise.py",line29,in<module>......
  • Node脚本打包uniapp热更新wgt文件
    通过脚本打包uniapp热更新wgt文件前言:uniapp只能通过hbuilder打包wgt文件目标:通过脚本命令打包wgt文件实现思路uniapp官方文档已经提供了wgt文件的的生成思路:目前使用npmrunbuild:app-plus会在/dist/build/app-plus下生成app打包资源。如需制作wgt包,将app-plus中的文......