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

Posted

技术标签:

【中文标题】运行 32 位 Python 2.7 构建的 64 位 Windows 10 的 python-magic 安装挑战【英文标题】:python-magic installation challenges for 64-bit Windows 10 running 32-bit Python 2.7 build 【发布时间】:2017-05-21 19:58:32 【问题描述】:

尽管遵循了模块的自述文件,我仍然收到“找不到魔法文件”。自述文件和"Dependencies" section 说:

在 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 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) 上面建议从二进制 ZIP 中获取文件 magic,并将其路径放在一行代码中,上面写着:Magic(magic_file=...)。我假设这实际上是 magic.Magic(magic_file='C:\path\goes\here\magic') 并且我假设它可以放在文件系统中的任何位置。

6) .. 我再次假设我指向的是文件 magic,而不是文件 magic.mgc

这些假设正确吗?

【问题讨论】:

【参考方案1】:

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

pip install python-libmagic

pip install python-magic-bin

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

【讨论】:

与往常一样,对带有可疑命令的堆栈溢出的评分最低的评论是正确的。做得好。对于任何阅读这篇文章的人来说,这是正确的答案。【参考方案2】:

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

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

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

4) 是的。我认为你是对的。

5) 我认为这是真的。

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

【讨论】:

感谢您的回答。我已经相应地设置了所有设置,但仍然无法正常工作。 错误 #1:需要为 Python 安装 C(我这样做了。)然后,错误 #2:“无法找到魔法库。” pip 安装的库包括:filemagic (1.6)、file-magic(0.3.0)、libmagic (1.0)、python-magic (0.4.12)、libarchive-c(2.7)。

以上是关于运行 32 位 Python 2.7 构建的 64 位 Windows 10 的 python-magic 安装挑战的主要内容,如果未能解决你的问题,请参考以下文章

在 64 位 Windows 7 和 64 位 Python 2.7 上安装 Pygame

对构建 32 位或 64 位感到困惑

使用 g++ -march=x86-64 构建的代码可以在 32 位操作系统上运行吗?

在 Windows 上为 Python 2.7 构建 lxml

32 位版本的 GhostScript 可以在 64 位系统上运行吗?

在 32 位 Xp 计算机上构建 64 位 Qt