10

尽管遵循了该模块的自述文件,但我继续收到“找不到魔法文件”。自述文件和“依赖项”部分说:

在 Windows 上,从 File for Windows 项目提供的 Binaries and Dependencies zip 文件将 magic1.dll、regex2.dll 和 zlib1.dll 复制到您的 PATH 中。您需要从 [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”的链接(标记为“Binaries”)、一个指向“file-5.03-dep.zip”的链接(标记为“Dependencies”)和一个链接在“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: failed to find libmagic)。

4)以上表明,除了 3 个 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

这些假设是否正确?

4

2 回答 2

7

我弄清楚我错过了什么。我会把它贴在这里,以防其他人发疯。

pip install python-libmagic

pip install python-magic-bin

Install Visual C (VCforPython.msi from [Microsoft website][1])
于 2018-02-14T15:21:24.027 回答
1

1) 是的,我认为你应该下载 5.03。不是 4.26。

2)如果你有 32 位 python,然后下载 32 位的东西。

3)只要 dll 在系统 PATH 变量中,就可以了。

4) 是的。我想你是对的。

5) 我认为这是真的。

6)它们是完全不同的文件。魔术似乎是正确的,因为它似乎包含有关魔术应该做什么的设置和信息。

于 2017-02-03T15:10:59.230 回答