2017-01-06 46 views
8

尽管遵循模块的自述文件,但我仍然得到“找不到魔法文件”。自述和"Dependencies" section说:针对运行32位Python的64位Windows 10的python-magic安装挑战Python 2.7 build

在Windows,复制magic1.dll,regex2.dll和zlib1.dll到您的PATH从二进制文件和压缩依赖通过文件的Windows项目提供了文件。你需要从[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”(标记为 “二进制文件”),链接到“文件-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; 64位指令说将它们放在C:\ Windows \ System32中。它是否重要,只要该文件夹是PATH'd? (其他人建议,特别是不要将它们放在\ 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

这些假设是否正确?

回答

1

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

2)如果您有32位蟒蛇,然后下载32位的东西。

3)只要DLL是在系统PATH变量,你的罚款。

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

5)我认为这是真的。

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

+0

感谢您的回答。我相应地设置了所有设置,但仍无法使其工作。 – Suzanne

+0

你的错误信息是什么? – Leonid

+0

错误#1:(这是我做的)需要安装下然后Python,错误#2:“无法找到神奇的图书馆。” PIP安装库包括:filemagic(1.6),filemagic(0.3.0),libmagic(1.0),蟒魔法(0.4.12),libarchive-C(2.7)。 – Suzanne

0

我想通了,我错过了什么。我会在这里发布它,以防其他人发疯。

pip install python-libmagic 

pip install python-magic-bin 

Install Visual C (VCforPython.msi from [Microsoft website][1]) 
相关问题