Cómo resolver dnf roto en Fedora 26 cuando aparece "ImportError: número mágico incorrecto en 'seis'"

Cómo resolver dnf roto en Fedora 26 cuando aparece "ImportError: número mágico incorrecto en 'seis'"

Mi dnf deja de funcionar y muestra este error:

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'

Realmente no recuerdo nada de lo que instalé además de las propias actualizaciones de Fedora a través de dnf distro-sync. ¿Podría ser un problema con el cambio de versión de Python?

Yo uso la estación de trabajo Fedora 26 x86_64

Respuesta1

Parece que la sixbiblioteca de Python está corrupta. ¿Qué obtienes con rpm -V python3-six? Si esto no da resultados, el problema está en otra parte. Sin embargo, si obtienes algo como:

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

intente eliminar el pycarchivo ofensivo y sudo dnf listvuelva a intentarlo ( sudo rm /usr/lib/python3.6/site-packages/__pycache__/six.cpython-36.pyc)

Tenga en cuenta que no esgeneralmenteEs seguro eliminar archivos aleatorios, pero estos pycarchivos son códigos de bytes precompilados como optimización y se volverán a crear.

rpm -VfTenga en cuenta también que después de la recreación,aúnmuestra el archivo como cambiado, porque... así es. Pero probablemente solucionará este problema particular del "número mágico incorrecto".

Siesono funciona, algo peor está pasando.

Respuesta2

Intente buscar archivos posiblemente conflictivos:

sudo find / -name 'six.py*'

Si, por ejemplo, tiene un archivo /usr/bin/six.pyc, Python intentará usarlo primero (debido al orden de carga del módulo). Reubicar/eliminar este archivo funcionó para mí.

Ver también:pregunta similar en Ask.fedoraproject.org

información relacionada