在 windows 台机器上安装 wand

install wand on a windows machine

我尝试在 windows 7(64 位)上安装 wand 0.4.4。

我安装了 imagemagick 二进制文件 (ImageMagick-6.9.3-1-Q16-x64-dll.exe)。 然后设置 MAGICK_HOME 环境变量为 ImageMagick 的路径。 最后,我在 Anaconda (python 2.7.13) 中通过 pip 安装了 wand。

当我 运行 'from wand.image import Image' 我得到以下错误:

    ----> 2 from wand.image import Image
  3 # from PIL import Image as PI
  D:\Anaconda2\lib\site-packages\wand\image.py in <module>()
 18 
 19 from . import compat
 ---> 20 from .api import MagickPixelPacket, libc, libmagick, library
 21 from .color import Color
 22 from .compat import (binary, binary_type, encode_filename, file_types,
D:\Anaconda2\lib\site-packages\wand\api.pyc in <module>()
178 
179 try:
--> 180     libraries = load_library()
181 except (OSError, IOError):
182     msg = 'http://docs.wand-py.org/en/latest/guide/install.html'
D:\Anaconda2\lib\site-packages\wand\api.pyc in load_library()
124         try:
125             tried_paths.append(libwand_path)
--> 126             libwand = ctypes.CDLL(libwand_path)
127             if libwand_path == libmagick_path:
128                 libmagick = libwand
D:\Anaconda2\lib\ctypes\__init__.pyc in __init__(self, name, mode, handle,      use_errno, use_last_error)
360 
361         if handle is None:
--> 362             self._handle = _dlopen(self._name, mode)
363         else:
364             self._handle = handle
TypeError: LoadLibrary() argument 1 must be string, not unicode

怎么了?

What's going wrong?

已报告 here。它很可能会在不久的将来得到修复。

解决方法是更新 api.py 中的两行。

  1. 找到文件 wand/api.py 文件。
  2. 搜索在 load_library 函数下调用的方法 ctypes.CDLL
  3. 将 unicode 变量转换为字符串。
    1. ctypes.CDLL(libwand_path)更改为ctypes.CDLL(str(libwand_path))
    2. ctypes.CDLL(libmagick_path)更改为ctypes.CDLL(str(libmagick_path))

这是一个 Python 2.7.13 问题,将在 2.7.14 版本中关闭,该版本应该在 2017 年年中左右发布;在此日期之前,您可以使用 emcconville 建议的修复程序直接编辑每个所需包的本地库加载或降级到 Python 2.7.12.

问题详情和解决补丁:

https://hg.python.org/cpython/rev/4ce22d69e134