Ошибка 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'
>>> 
Другие вопросы по тегам