проблемы установки python-magic для 64-битной Windows 10 с 32-битной сборкой Python 2.7

Несмотря на то, что я следую ридми для модуля, я продолжаю получать «магические файлы не найдены». В разделе 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.

Верны ли эти предположения?


person Suzanne    schedule 06.01.2017    source источник


Ответы (2)


Я понял, чего мне не хватало. Я опубликую это здесь, если кто-то еще сходит с ума.

pip install python-libmagic

pip install python-magic-bin

Install Visual C (VCforPython.msi from [Microsoft website][1])
person Suzanne    schedule 14.02.2018
comment
Как всегда, комментарий с самым низким рейтингом о переполнении стека с подозрительно выглядящими командами является правильным. Отличная работа. Для всех, кто читает этот пост, это правильный ответ. - person dipl0; 27.06.2018

1) Да, я думаю вам стоит скачать 5.03. Не 4.26.

2) Если у вас 32-битный питон, скачайте 32-битный материал.

3) Пока dll находятся в системной переменной PATH, все в порядке.

4) Да. Я думаю, вы правы.

5) Я думаю, что это правда.

6) это совершенно разные файлы. magic кажется правильным, потому что он содержит настройки и информацию о том, что должна делать магия.

person Leonid    schedule 03.02.2017
comment
Спасибо за ответ. Я установил все свои настройки соответствующим образом и все еще не могу заставить его работать. - person Suzanne; 04.02.2017
comment
Ошибка № 1: нужно установить C для Python (что я и сделал). Затем ошибка № 2: невозможно найти волшебную библиотеку. Библиотеки, установленные в pip, включают: filemagic (1.6), file-magic (0.3.0), libmagic (1.0), python-magic (0.4.12), libarchive-c (2.7). - person Suzanne; 06.02.2017