Como resolver o dnf quebrado no Fedora 26 quando recebo “ImportError: número mágico ruim em 'seis'”

1

Meu dnf parou de funcionar e mostra esse 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 faço nenhum tipo de atualização que eu instalei além das próprias atualizações do Fedora via dnf distro-sync. Poderia ser um problema com a mudança de versão do python?

Eu uso o Fedora 26 Workstation x86_64

    
por msmafra 29.09.2017 / 14:48

2 respostas

1

Parece que a biblioteca python six está corrompida. O que você ganha com rpm -V python3-six ? Se isso não der saída, 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 arquivo pyc incorreto e tente sudo dnf list novamente ( sudo rm /usr/lib/python3.6/site-packages/__pycache__/six.cpython-36.pyc )

Note que não é geralmente seguro apenas remover arquivos aleatórios, mas esses arquivos pyc são pré-compilados por código de bytes como uma otimização, e serão recriados.

Note também que após a recriação, rpm -Vf ainda mostrará o arquivo como alterado, porque ... ele tem. Mas provavelmente isso resolverá esse problema "número mágico ruim".

Se isso não funcionar, algo pior está acontecendo.

    
por 29.09.2017 / 19:52
2

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 fez o truque para mim.

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

    
por 23.04.2018 / 18:11