Mein DNF funktioniert nicht mehr und zeigt diesen Fehler an:
Traceback (most recent call last):
File "/usr/bin/dnf", line 57, in <module>
from dnf.cli import main
File "/usr/lib/python3.6/site-packages/dnf/__init__.py", line 31, in <module>
import dnf.base
File "/usr/lib/python3.6/site-packages/dnf/base.py", line 37, in <module>
import dnf.conf
File "/usr/lib/python3.6/site-packages/dnf/conf/__init__.py", line 40, in <module>
from dnf.conf.config import PRIO_DEFAULT, PRIO_MAINCONFIG, PRIO_AUTOMATICCONFIG
File "/usr/lib/python3.6/site-packages/dnf/conf/config.py", line 26, in <module>
from iniparse.compat import ParsingError, RawConfigParser as ConfigParser
File "/usr/lib/python3.6/site-packages/iniparse/__init__.py", line 6, in <module>
from .ini import INIConfig, change_comment_syntax
File "/usr/lib/python3.6/site-packages/iniparse/ini.py", line 47, in <module>
import six
ImportError: bad magic number in 'six': b'\x03\xf3\r\n'
Ich kann mich wirklich an nichts erinnern, was ich außer Fedoras eigenen Updates über dnf distro-sync installiert habe. Könnte es ein Problem mit der Änderung der Python-Version sein?
Ich verwende Fedora 26 Workstation x86_64
Antwort1
Es klingt, als ob die Python- six
Bibliothek beschädigt ist. Was bekommen Sie mit rpm -V python3-six
? Wenn dies keine Ausgabe liefert, liegt das Problem woanders. Wenn Sie jedoch etwas wie Folgendes erhalten:
S.5....T. /usr/lib/python3.6/site-packages/__pycache__/six.cpython-36.pyc
versuchen Sie, die fehlerhafte pyc
Datei zu entfernen und versuchen Sie es sudo dnf list
erneut ( sudo rm /usr/lib/python3.6/site-packages/__pycache__/six.cpython-36.pyc
)
Beachten Sie, dass es nichtallgemeinEs ist sicher, einfach zufällige Dateien zu entfernen, aber diese pyc
Dateien sind zur Optimierung vorkompilierter Bytecode und werden neu erstellt.
rpm -Vf
Beachten Sie auch, dass nach der Erholung,Trotzdemzeige die Datei als geändert an, weil... sie geändert wurde. Aber es wird wahrscheinlich dieses spezielle Problem mit der „schlechten magischen Zahl“ beheben.
WennDasnicht funktioniert, ist etwas Schlimmeres im Gange.
Antwort2
Suchen Sie nach möglicherweise in Konflikt stehenden Dateien:
sudo find / -name 'six.py*'
Wenn Sie beispielsweise eine Datei haben /usr/bin/six.pyc
, versucht Python, diese zuerst zu verwenden (aufgrund der Ladereihenfolge der Module). Bei mir hat das Verschieben/Entfernen dieser Datei geholfen.
Siehe auch:ähnliche Frage auf ask.fedoraproject.org