尽管遵循了该模块的自述文件,我仍然得到“未找到魔法文件”。自述文件和"Dependencies" section说:
在Windows上,将magic1.dll,regex2.dll和zlib1.dll从File for Windows项目提供的Binaries and Dependencies zip文件复制到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 bit version of the dependencies files。我不知道哪个版本用于64位Windows而是32位Python。上面的说明说64位Python,但this says 64 bit Windows.我应该安装哪个?
3)上面说过把DLL放在PATH中; 64位指令说将它们放在C:\ Windows \ System32中。是否重要,只要文件夹是PATH? (其他人建议不要将它们放在\ Windows \ System32帮助:Python-magic installation error - 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
。
这些假设是否正确?
答案 0 :(得分:2)
我弄明白我错过了什么。我会在这里发布,以防其他人发疯。
pip install python-libmagic
pip install python-magic-bin
Install Visual C (VCforPython.msi from [Microsoft website][1])
答案 1 :(得分:1)
1)是的,我认为你应该下载5.03。不是4.26。
2)如果你有32位python,那么下载32位的东西。
3)只要dll在系统PATH变量中,你就可以了。
4)是的。我认为你是对的。
5)我认为这是真的。
6)他们是完全不同的文件。魔术似乎是正确的,因为它似乎包含魔法应该做的设置和信息。