运行32位Python 2.7版本的64位Windows 10的python-magic安装挑战

时间:2017-01-06 23:40:00

标签: windows python-2.7 dll python-magic libmagic

尽管遵循了该模块的自述文件,我仍然得到“未找到魔法文件”。自述文件和"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,而不是另一个需要的第二个依赖项文件。正确的吗?

enter image description here

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

这些假设是否正确?

2 个答案:

答案 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)他们是完全不同的文件。魔术似乎是正确的,因为它似乎包含魔法应该做的设置和信息。