Как решить сломанный dnf в Fedora 26, когда я получаю "ImportError: bad magic number in 'six'"

мой 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'x03xf3rn'

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

Я использую Fedora 26 Workstation x86_64

22
задан mattdm
20.02.2023 11:14 Количество просмотров материала 2657
Распечатать страницу

2 ответа

это звучит как 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 будет еще показать файл как измененный, потому что... Оно имеет. Но это, вероятно, исправит эту конкретную проблему "плохого магического числа".

If это не работает, происходит что-то худшее.

1
отвечен mattdm 2023-02-21 19:02

попробуйте найти любые конфликтующие файлы:

sudo find / -name 'six.py*'

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

Читайте также: аналогичный вопрос о ask.fedoraproject.org

2
отвечен Drew McGowen 2023-02-21 21:19

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх