为 Python Ubuntu 16.04 安装 ImageMagick

为 Python Ubuntu 16.04 安装 ImageMagick

更新

也许这就是原因?

>>> from ctypes import *
>>> cdll.LoadLibrary('libMagickWand-6.Q16.so.2')
...
OSError: /home/myuname/anaconda3/bin/../lib/libgomp.so.1: version `GOMP_4.0' not found (required by /usr/lib/x86_64-linux-gnu/libMagickWand-6.Q16.so.2)

但不清楚如何修复。


使用 Python棍棒包。按照安装说明运行:

sudo apt install libmagickwand-dev imagemagick
pip install wand

但是当我尝试导入图像时出现以下错误:

>>> from wand.image import Image
...
    raise IOError('cannot find library; tried paths: ' + repr(tried_paths))
OSError: cannot find library; tried paths: ['libMagickWand-6.Q16.so.2', 'libMagickWand-6.Q16.so.2']

During handling of the above exception, another exception occurred:
...
ImportError: MagickWand shared library not found.
You probably had not installed ImageMagick library.
Try to install:
  apt-get install libmagickwand-dev

不知道发生了什么。运行后,ldconfig -p | grep -i wand我得到:

libMagickWand-6.Q16.so.2 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libMagickWand-6.Q16.so.2
libMagickWand-6.Q16.so (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libMagickWand-6.Q16.so

同时运行 ctypes 会显示该库:

>>> from ctypes.util import find_library
>>> find_library('MagickWand')
'libMagickWand-6.Q16.so.2'

确认它不是v7:

$ convert -version
Version: ImageMagick 6.8.9-9 Q16 x86_64 2017-05-26 http://www.imagemagick.org

答案1

从默认的 Ubuntu 存储库在 Ubuntu 16.04 中安装 wand。

sudo apt install python-wand libmagickwand-dev 

在您自己的主目录中创建一个名为 mona-lisa.png 的图像,以便在以下示例代码中使用魔杖文档

from wand.image import Image
from wand.display import display

with Image(filename='mona-lisa.png') as img:
    print(img.size)
    for r in 1, 2, 3:
        with img.clone() as i:
            i.resize(int(i.width * r * 0.25), int(i.height * r * 0.25))
            i.rotate(90 * r)
            i.save(filename='mona-lisa-{0}.png'.format(r))
            display(i)

如果您从终端运行此代码,请Enter在代码结束后按两次以运行代码。此代码应成功运行并在单独的窗口中打开图像并显示控制台输出。在退出 Python 解释器之前,单击 X 关闭 Python 代码打开的所有图像窗口。

我尝试对您的输出进行故障排除并得到以下结果:

>>> from ctypes import *
>>> cdll.LoadLibrary('libMagickWand-6.Q16.so.2')
<CDLL 'libMagickWand-6.Q16.so.2', handle 266d6a0 at 7fb271c966d0>

我的计算机上没有出现任何错误,但是我发现了导致您计算机上出现此错误的原因:

OSError: /home/myuname/anaconda3/bin/../lib/libgomp.so.1: version `GOMP_4.0' not found (required by /usr/lib/x86_64-linux-gnu/libMagickWand-6.Q16.so.2)

显然,您计算机上的错误是由 anaconda 引起的。众所周知,Anaconda 会弄乱许多 Python 模块的默认路径。要修复它,您需要告诉 conda apt 安装的 Python 文件的路径。

您可以使用符号链接告诉 conda 由 apt 安装的 Python 文件的路径。将符号链接放在 conda 自己的lib/python/site-packages目录中,对您来说,它将类似于:/home/ksindi/anaconda3/lib/python/site-packages如果 ksindi 是您的用户名。

不,先生,我不喜欢 anaconda,因为它让我做所有这些额外的工作来让 conda 识别我用 apt 安装的 Python 包。

相关内容