Ошибка Python: Файл 5.3 поддерживает только волшебный файл версии 7
Я установил python-magic с файлами magic1.dll, regex2.dll и zlib1.dll, и он импортируется правильно, но когда я пытаюсь сделать, например, m = magic.Magic()
Я получаю ошибку: Could not find any magic file
Итак, я немного погуглил и нашел здесь ответ, который дал мне еще одну ошибку: File 5.3 supports only version 7 magic file. "magic.mgc" is version 12.
Могу ли я получить волшебный файл версии 7?
1 ответ
Я много искал решение этой проблемы, но не смог найти. Я немного поиграл с волшебными файлами, и вдруг это сработало. Поэтому сейчас я напишу пошаговое решение проблем, подобных моей или аналогичной моей, для пользователей Windows и Linux.
Для окон:
Шаг 1: Удалить magic.py
и magic.pyc
файлы из вашей папки python lib. И если вы скачали zlib1.dll
, magic1.dll
, regex2.dll
а также magic.mgc
, также удалите их.
Шаг 2: Загрузите этот zip-файл и распакуйте его.
Примечание. Этот zip-файл содержит все, что нам нужно: magic.py
, magic.pyc
, magic.mgc
, zlib1.dll
, magic.dll
а также regex2.dll
,
Шаг 3: Затем двигайтесь magic.py
, magic.pyc
и файлы DLL в папку lib Python.
Шаг 4. Перейдите в Свойства компьютера> Расширенные настройки системы> Переменные среды и нажмите New...
, В имени переменной введите: magic
А в другом поле введите путь к magic.mgc
файл и нажмите ОК.
И теперь это должно работать:
>>> import magic
>>> s = magic.Magic()
>>> s.from_file("test.txt")
'ASCII text, with no line terminators'
>>>
Примечание: если вы компилируете свою программу в EXE, убедитесь, что файлы DLL и magic.mgc
находятся в той же папке, что и ваша программа EXE для правильной работы. Если вы этого не сделаете, вы получите ошибки
ДЛЯ LINUX:
Если вы пользователь Linux и у вас есть проблемы с магией, вот что вам нужно сделать:
Шаг 1: В командной строке введите sudo pip install python-magic
установить или обновить до последней версии python-magic. Если у вас есть IncompleteRead
ошибка, затем введите в командной строке:
Для Python 2:
sudo apt-get удалить python-pip && sudo easy_install pip
Для Python 3:
sudo apt-get удалить python3-pip && sudo easy_install3 pip
Это определенным образом обновит ваш пункт и уберет ошибку. После завершения введите sudo pip install python-magic
установить магию после обновления пипса.
Тогда это должно работать:
>>> import magic
>>> s = magic.Magic()
>>> s.from_file("test.txt")
'ASCII text, with no line terminators'
>>>