清除usr / lib / python3.5 / site-packages /后,DNF和YUM不起作用

Asw*_*han 1 python bash pip fedora

我在摆弄Fedora,试图卸载python模块。我找不到我想要的那个,所以半个Linux灵长类动物的大脑想到了一个Idea来执行此操作。

sudo rm -rf /usr/lib/python3.5/site-packages/
Run Code Online (Sandbox Code Playgroud)

确实做到了,直到后来我才意识到自己有多么愚蠢。DNF和YUM依赖于此,每执行一次DNF都会得到

Traceback (most recent call last):
  File "/usr/bin/dnf", line 57, in <module>
    from dnf.cli import main
ImportError: No module named 'dnf'
Run Code Online (Sandbox Code Playgroud)

当我执行YUM时

Redirecting to '/usr/bin/dnf ' (see 'man yum2dnf')

Traceback (most recent call last):
  File "/usr/bin/dnf", line 57, in <module>
    from dnf.cli import main
ImportError: No module named 'dnf'
Run Code Online (Sandbox Code Playgroud)

唯一有效的方法是yum-deprecated。其他一切都处于动荡之中。

那么我该如何解决呢?

Asw*_*han 5

清除Python3的Site-Packages目录将删除Fedora要正常运行所需的许多库。这意味着工具,如dnfyum不工作。

这些是我要解决的步骤。

步骤1:安装yum-deprecated。只需在终端上键入yum不推荐使用,它将询问您是否要安装它。键入y,它将被安装。

步骤2:运行此Bash命令

rpm -qa | egrep "^python3" | sed ':a;N;$!ba;s/\n/ /g' | xargs sudo yum-deprecated reinstall -y
Run Code Online (Sandbox Code Playgroud)

这将找到Installed python 3软件包的所有名称,然后重新安装它们。

对我自己的注意:永远不要再运行命令sudo rm -rf /usr/lib/python3.5/site-packages/