尽管遵循了模块的自述文件,我仍然得到“找不到魔法文件”。自述文件和"Dependencies" section说:
在Windows上,将magic1.dll、regex2.dll和zlib1.dll从Windows项目文件提供的二进制文件和依赖项zip文件复制到您的路径上。您需要将magic文件从[binary zip]\share\misc中复制出来,并将其位置传递给magic(magic_file=…)。如果您使用的是64位python构建,则需要64位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,而不是另一个需要的第二个依赖文件。对的?
windows - 运行32位Python 2.7版本的64位Windows 10的python-magic安装挑战-LMLPHP
2)有一个32位版本和一个64 bit version of the dependencies files。我不知道该在64位windows中使用哪个版本,但是32位python。上面的说明是64位python,但是this says 64 bit Windows.我应该安装哪个?
3)上面的说明是将dll放在路径中;64位的说明是将它们放在c:\ windows\system32中。有关系吗,只要文件夹是路径?(其他人建议不要将它们放在\windows\system32中有帮助:Python-magic installation error - ImportError: failed to find libmagic)。
4)以上说明,除了3个dll之外,二进制文件和依赖项中唯一需要的其他文件是文件magic。所以我不需要文件magic.mgc,它也在binary zip\share\misc中?我也不需要这两个zip中的任何其他文件,比如文件file
5)以上建议将文件magic从二进制zip中取出,并将其路径放在一行代码中,代码为:Magic(magic_file=...)。我假设这实际上是magic.Magic(magic_file='C:\path\goes\here\magic')并且我假设它可以在文件系统中的任何地方。
6)我再次假设,我指向的是文件magic,而不是文件magic.mgc
这些假设正确吗?

最佳答案

我弄明白了我错过了什么。我会把它贴在这里,以防别人发疯。

pip install python-libmagic

pip install python-magic-bin

Install Visual C (VCforPython.msi from [Microsoft website][1])

07-26 07:18