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

2024-06-06 08:45:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我在摆弄Fedora,试图卸载一个python模块。我找不到我要找的那个,所以半linux灵长类的大脑想出了一个主意,来执行这个。在

sudo rm -rf /usr/lib/python3.5/site-packages/

它做到了,只是在那之后我才意识到我是多么的愚蠢。DNF和YUM依赖于它,当我执行DNF时,我得到

^{pr2}$

当我执行百胜的时候

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'

唯一有效的方法是yum-deprecated。其他一切都混乱不堪。在

我该怎么解决这个问题呢?在


Tags: 模块rmbinlinuxlibusrsudo主意
3条回答

基本上删除了很多python文件。系统的很大一部分依赖于python,包括dnf本身,它是用python编写的。在

最好的办法是备份所有文件并重新安装系统。如果yum-deprecated仍然有效,那么重新安装dnf可能会很幸运:

yum-deprecated reinstall "dnf*"

但是很可能你需要更多的包来完成同样的过程。在

使用'rpm-Va'来识别缺少文件的包。然后您必须从Fedora镜像下载匹配的RPM文件,然后使用rpm reinstall来修复这些文件。在

更高级别的dnf和yum包依赖Python,因此它们很可能会被破坏。幸运的是,较低级别的rpm命令没有这样做,因此,如果您删除了所有python包,这将使您恢复正常。在

清除Python3的Site Packages目录会删除Fedora正常运行所需的许多库。这意味着dnfyum之类的工具不起作用。在

这些是我为解决这个问题所采取的步骤。在

步骤1:安装yum-deprecated。只要在终端上输入yum deprecated,它就会询问doyouwantoinstall。键入y,它将被安装。在

第2步:运行这个Bash命令

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

这将找到已安装的python3包的所有名称,并重新安装它们。在

注意:永远不要再运行sudo rm -rf /usr/lib/python3.5/site-packages/之类的命令。在

相关问题 更多 >