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 six
biblioteca 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 pyc
arquivo incorreto e tente sudo dnf list
novamente ( 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 pyc
arquivos são bytecode pré-compilados como uma otimização e serão recriados.
rpm -Vf
Observe 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