1

Мой dnf перестает работать и показывает эту ошибку:

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'

Я действительно не помнил ничего, что я установил, кроме собственных обновлений Fedora через dnf distro-sync. Может ли быть проблема с изменением версии Python?

Я использую рабочую станцию Fedora 26 x86_64

2 ответа2

2

Попробуйте найти возможные конфликтующие файлы:

sudo find / -name 'six.py*'

Если, например, у вас есть файл /usr/bin/six.pyc , python попытается использовать его первым (из-за порядка загрузки модуля). Перемещение / удаление этого файла помогло мне.

Смотрите также: похожий вопрос на ask.fedoraproject.org

1

Похоже, что библиотека Python six повреждена. Что вы получаете с rpm -V python3-six? Если это не дает результата, проблема в другом месте. Однако, если вы получите что-то вроде:

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

попробуйте удалить поврежденный файл pyc и попробуйте sudo dnf list раз (sudo rm /usr/lib/python3.6/site-packages/__pycache__/six.cpython-36.pyc)

Обратите внимание, что в общем случае небезопасно просто удалять случайные файлы, но эти pyc файлы предварительно скомпилированы с помощью байт-кода для оптимизации и будут воссозданы заново.

Также обратите внимание, что после восстановления rpm -Vf все равно покажет файл как измененный, потому что ... он имеет. Но это, вероятно, решит эту проблему с "плохим магическим числом".

Если это не работает, что - то хуже происходит.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .