【Linux】yum 报错ModuleNotFoundError: No module named ‘dnf‘

【Linux】yum 报错ModuleNotFoundError: No module named ‘dnf‘

yum 在使用的时候,报错

[root@localhost python3.7]$ sudo yum
Traceback (most recent call last):
  File "/usr/bin/yum", line 57, in <module>
    from dnf.cli import main
ModuleNotFoundError: No module named 'dnf'

问题排查思路

1. 查看/usr/lib/python[版本]/下的site-packages

site-packages存在问题,会导致出现上述问题

处理方法:

查看python版本,重新安装,这里默认是3.7版本的

找到rpm包,执行安装命令

$ sudo rpm -ivh python3-3.7.9-13.x86_64.rpm
# 如果安装提示此rpm包已经存在,需要手动卸载后,再次安装
$ sudo rpm -qa | grep python3-3.7
python3-3.7.9-13.x86_64.rpm
# 卸载完成后,再次安装即可
$ sudo rpm -ivh python3-3.7.9-13.x86_64.rpm

查看/usr/lib/python3.7下是否存在site-package 确认都存在,且大小正常的情况下,执行yum看是否恢复正常

2. python 默认版本更改

首先查看yum使用的是python几

$ head -n 1 /usr/bin/yum
#!/usr/bin/python3

上述的yum默认是python3

查看python3 的版本是否是3.7

$ python3 --version
Python 3.8.x
# 查看默认的版本,发现不是3.7
# 需要手动修改环境变量,将python3 修改为3.7
$ ls -l /usr/bin/python3
lrwxrwxrwx 1 root root 9  78  2021 /usr/bin/python3 -> python3.8
将软连接重新指到3.7后,再次查看
$ rm -f /usr/bin/python3
$ ln -s /usr/bin/python3.7 /usr/bin/python3
$ python3 --version
Python 3.7.9

再次查看yum是否可用

3.直接卸载版本过高的python

确认yum 的python版本过高,导致3.7版本无法使用rpm安装,

联系研发,确认不需要此版本后,将python3.8卸载即可

$ sudo rpm -e --nodeps python3-3.8-13.x86_64  ## 后面的文件 根据实际情况来定

你可能感兴趣的:(yum,linux,python,运维)