Como resolver dnf quebrado no Fedora 26 quando recebo “ImportError: bad magic number in 'six'”

Como resolver dnf quebrado no Fedora 26 quando recebo “ImportError: bad magic number in 'six'”

Meu dnf para de funcionar e mostra este erro:

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'

Eu realmente não me lembro de nada que instalei além das atualizações do próprio Fedora via dnf distro-sync. Poderia ser um problema com a mudança de versão do python?

Eu uso a estação de trabalho Fedora 26 x86_64

Responder1

Parece que a sixbiblioteca python está corrompida. Com o que você ganha rpm -V python3-six? Se isso não der resultado, o problema está em outro lugar. No entanto, se você obtiver algo como:

S.5....T.    /usr/lib/python3.6/site-packages/__pycache__/six.cpython-36.pyc

tente remover o pycarquivo incorreto e tente sudo dnf listnovamente ( sudo rm /usr/lib/python3.6/site-packages/__pycache__/six.cpython-36.pyc)

Observe que não égeralmenteÉ seguro remover apenas arquivos aleatórios, mas esses pycarquivos são bytecode pré-compilados como uma otimização e serão recriados.

rpm -VfObserve também que após a recreação,aindamostre o arquivo como alterado, porque... ele foi alterado. Mas provavelmente resolverá esse problema específico de “número mágico ruim”.

Sequenão funciona, algo pior está acontecendo.

Responder2

Tente procurar por arquivos possivelmente conflitantes:

sudo find / -name 'six.py*'

Se, por exemplo, você tiver um arquivo /usr/bin/six.pyc, o python tentará usá-lo primeiro (devido à ordem de carregamento do módulo). Realocar/remover este arquivo funcionou para mim.

Veja também:pergunta semelhante em ask.fedoraproject.org

informação relacionada