Python找不到MagickWand库(尽管位置正确?)

11 投票
5 回答
25157 浏览
提问于 2025-04-18 15:05

我想安装Python的ImageMagick API叫做wand,按照这个网站的步骤进行了操作:

http://docs.wand-py.org/en/latest/guide/install.html#install-imagemagick-on-windows

但是,当我运行一个非常简单的测试时:

from wand.image import Image

我得到了以下输出:

追踪记录(最近的调用在最前面):

文件 "F:\PATHTO\Python34\lib\site-packages\wand\api.py",第137行,在 libraries = load_library()

文件 "F:\PATHTO\Python34\lib\site-packages\wand\api.py",第107行,在 load_library 抛出IOError('找不到库;尝试的路径:' + repr(tried_paths))

OSError: 找不到库;尝试的路径:['F:\PATHTO\ImageMagick-6.8.9-Q16\CORE_RL_wand_.dll', 'F:\PATHTO\ImageMagick-6.8.9-Q16\CORE_RL_wand_HDRI.dll', 'F:\PATHTO\ImageMagick-6.8.9-Q16\CORE_RL_wand_-Q16.dll', 'F:\PATHTO\ImageMagick-6.8.9-Q16\CORE_RL_wand_-Q16HDRI.dll', 'F:\PATHTO\ImageMagick-6.8.9-Q16\CORE_RL_wand_-Q8.dll', 'F:\PATHTO\ImageMagick-6.8.9-Q16\CORE_RL_wand_-Q8HDRI.dll', 'F:\PATHTO\ImageMagick-6.8.9-Q16\CORE_RL_wand_-6.Q16.dll', 'F:\PATHTO\ImageMagick-6.8.9-Q16\CORE_RL_wand_-6.Q16HDRI.dll']

在处理上述异常时,又发生了另一个异常:

追踪记录(最近的调用在最前面): 文件 "D:\PATHTO\Python\test.py",第1行,在 import wand.image

文件 "F:\PATHTO\Python34\lib\site-packages\wand\image.py",第20行,在 from .api import MagickPixelPacket, libc, libmagick, library

文件 "F:\PATHTO\Python34\lib\site-packages\wand\api.py",第161行,在 '尝试安装:\n ' + msg)

ImportError: 找不到MagickWand共享库。 你可能没有安装ImageMagick库。 尝试安装: http://docs.wand-py.org/en/latest/guide/install.html#install-imagemagick-on-windows

问题是,尝试查找的文件(例如CORE_RL_wand_.dll)实际上就在它们没有找到的地方。 所以看起来我正确设置了MAGICK_HOME环境变量。

不过(似乎显示不正确),在我的命令行中,wand API和我的Python安装路径显示的是单个反斜杠,而ImageMagick文件夹的路径显示的是两个反斜杠。

我不明白为什么会这样(环境变量使用的是单个反斜杠,和链接的网站一样),而且我不知道这是否是问题的根源,或者是否与此有关。

5 个回答

0

我工作的环境配置如下:

  • 操作系统:Windows Server 2012
  • 使用的Python版本:3.7(32位)
  • 安装的ImageMagick软件:ImageMagick-7.0.8-49-Q16-x86-dll(32位)
  • 安装的Ghostscript软件:gs927w32(32位)

添加环境变量路径:

  • C:\Program Files (x86)\gs\gs9.27\bin

参考链接:

1

我遇到了类似的问题,不过安装了 ImageMagick-6.9.x-x-Q16-x64-dll.exe 后就解决了。所以很明显,ImageMagick-6.9.10-11-Q16-x64-static.exe 似乎不太好用……而且 Python 和安装程序都是 64 位的。

先卸载 ImageMagick-6.9.10-11-Q16-x64-static.exe,然后再安装 ImageMagick-6.9.x-x-Q16-x64-dll.exe

1

顺便提一下,这个问题反过来也适用(在我的情况下),我在用64位的Python和32位的ImageMagick时也遇到了同样的错误。Python的版本(32位或64位)似乎需要和ImageMagick的版本一致。不过需要注意的是,Ghostscript可以是32位的,仍然可以正常工作。

8

我遇到过类似的问题,检查了一下安装的架构,确认和 Python 3.x 版本匹配,但还是不行。后来我通过几个步骤解决了这个问题,觉得可以把这些步骤整理出来,方便有相似问题的人参考。

有几个来源提到,Image Magick 7.x 版本和 magick Wand 不兼容,所以一定要使用 6.x 版本。此外,带有“static”后缀的版本也不行。最后我用的那个版本是“ImageMagick-6.9.8-10-Q8-x64-dll.exe”,这个终于成功了。

21

我自己想了想,解决了自己的问题;)

我之前装的是32位的Python和64位的ImageMagick... 后来我把ImageMagick卸载了,然后装上了32位的版本,一切就正常了。

希望这能帮助到遇到同样问题的人,可能他们也是通过谷歌找到这里的^^

撰写回答