Wie behebe ich einen defekten DNF in Fedora 26, wenn ich die Meldung „ImportError: ungültige magische Zahl in ‚sechs‘“ erhalte?

Wie behebe ich einen defekten DNF in Fedora 26, wenn ich die Meldung „ImportError: ungültige magische Zahl in ‚sechs‘“ erhalte?

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- sixBibliothek 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 pycDatei zu entfernen und versuchen Sie es sudo dnf listerneut ( 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 pycDateien sind zur Optimierung vorkompilierter Bytecode und werden neu erstellt.

rpm -VfBeachten 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

verwandte Informationen