![为 Python Ubuntu 16.04 安装 ImageMagick](https://linux22.com/image/1001462/%E4%B8%BA%20Python%20Ubuntu%2016.04%20%E5%AE%89%E8%A3%85%20ImageMagick.png)
更新
也许这就是原因?
>>> 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 包。