Несмотря на то, что я следую ридми для модуля, я продолжаю получать «магические файлы не найдены». В разделе Readme и "Зависимости" говорится:
В Windows скопируйте magic1.dll, regex2.dll и zlib1.dll в путь PATH из zip-файлов Binaries and Dependencies, предоставленных проектом File for Windows. Вам нужно будет скопировать файл magic из [binary-zip]\share\misc и передать его местоположение в Magic(magic_file=...). Если вы используете 64-битную сборку Python, вам понадобится 64 -bit двоичные файлы libmagic, которые можно найти здесь: https://github.com/pidydx/libmagicwin64 ( примечание: не проверено).
Полезными будут следующие пояснения:
1) Ссылка Files for Windows содержит ссылку на "file-5.03-bin .zip» (с пометкой «Двоичные файлы»), ссылку на «file-5.03-dep.zip» (с пометкой «Зависимости») и ссылку в правом нижнем углу на «file-4.26-dep.zip», которая также помечен как «файл зависимостей». Я предполагаю, что последнее является ошибкой, которая должна указывать на 5.03-dep, а не на другой второй файл зависимостей, который требуется. Правильный?
2) Кажется, есть 32-битная версия и 64-битная версия файлов зависимостей. Я не знаю, какую версию использовать с 64-битной Windows, но с 32-битным Python. В приведенных выше инструкциях говорится о 64-разрядной версии Python, но здесь говорится о 64-разрядной версии Windows. Что мне следует установить?
3) Выше сказано, что нужно поместить библиотеки DLL в PATH; в 64-битных инструкциях сказано, что нужно поместить их в C:\Windows\System32. Имеет ли значение, если папка указана в PATH? (Кто-то еще предположил, что конкретно НЕ помещать их в \Windows\System32 помогло: ">Ошибка установки Python-magic - ImportError: не удалось найти libmagic).
4) Вышеизложенное предполагает, что единственным другим файлом, необходимым в двоичных файлах и зависимостях, кроме трех DLL, является файл magic
. Так мне тоже не нужен файл magic.mgc
, который тоже есть в бинарнике zip\share\misc? Мне также не нужны никакие другие файлы в этих двух ZIP-архивах, например файл file
?
5) Вышеизложенное предлагает извлечь файл magic
из двоичного ZIP-архива и указать путь к нему в строке кода, которая гласит: Magic(magic_file=...)
. Я предполагаю, что это на самом деле magic.Magic(magic_file='C:\path\goes\here\magic')
И я предполагаю, что это может быть где угодно в файловой системе.
6) .. и я опять же предполагаю, что указываю на файл magic
, а не на файл magic.mgc
.
Верны ли эти предположения?