wand.image 导入错误:找不到共享库。你可能没有安装 ImageMagick 库

问题描述 投票:0回答:3

我正在尝试使用 PDFPlumber 库,它使用 Wand 的图像格式。但是,在尝试运行时:

from wand.image import Image

我得到这个错误:

Traceback (most recent call last):
 File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/wand/api.py", line 151, in <module>
libraries = load_library()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/wand/api.py", line 140, in load_library
raise IOError('cannot find library; tried paths: ' + repr(tried_paths))
OSError: cannot find library; tried paths: ['/opt/homebrew/opt/imagemagick@6/lib/lib/libMagickWand.dylib', '/opt/homebrew/opt/imagemagick@6/lib/lib/libMagickWandHDRI.dylib', '/opt/homebrew/opt/imagemagick@6/lib/lib/libMagickWandHDRI-2.dylib', '/opt/homebrew/opt/imagemagick@6/lib/lib/libMagickWand-7.dylib', '/opt/homebrew/opt/imagemagick@6/lib/lib/libMagickWand-7HDRI.dylib', '/opt/homebrew/opt/imagemagick@6/lib/lib/libMagickWand-7HDRI-2.dylib', '/opt/homebrew/opt/imagemagick@6/lib/lib/libMagickWand-7.Q8.dylib', '/opt/homebrew/opt/imagemagick@6/lib/lib/libMagickWand-7.Q8HDRI.dylib', '/opt/homebrew/opt/imagemagick@6/lib/lib/libMagickWand-7.Q8HDRI-2.dylib', '/opt/homebrew/opt/imagemagick@6/lib/lib/libMagickWand-7.Q16.dylib', '/opt/homebrew/opt/imagemagick@6/lib/lib/libMagickWand-7.Q16HDRI.dylib', '/opt/homebrew/opt/imagemagick@6/lib/lib/libMagickWand-7.Q16HDRI-2.dylib', '/opt/homebrew/opt/imagemagick@6/lib/lib/libMagickWand-6.dylib', '/opt/homebrew/opt/imagemagick@6/lib/lib/libMagickWand-6HDRI.dylib', '/opt/homebrew/opt/imagemagick@6/lib/lib/libMagickWand-6HDRI-2.dylib', '/opt/homebrew/opt/imagemagick@6/lib/lib/libMagickWand-Q16.dylib', '/opt/homebrew/opt/imagemagick@6/lib/lib/libMagickWand-Q16HDRI.dylib', '/opt/homebrew/opt/imagemagick@6/lib/lib/libMagickWand-Q16HDRI-2.dylib', '/opt/homebrew/opt/imagemagick@6/lib/lib/libMagickWand-Q8.dylib', '/opt/homebrew/opt/imagemagick@6/lib/lib/libMagickWand-Q8HDRI.dylib', '/opt/homebrew/opt/imagemagick@6/lib/lib/libMagickWand-Q8HDRI-2.dylib', '/opt/homebrew/opt/imagemagick@6/lib/lib/libMagickWand-6.Q16.dylib', '/opt/homebrew/opt/imagemagick@6/lib/lib/libMagickWand-6.Q16HDRI.dylib', '/opt/homebrew/opt/imagemagick@6/lib/lib/libMagickWand-6.Q16HDRI-2.dylib']

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/wand/api.py", line 177, in <module>
'Try to install:\n  ' + msg)
ImportError: MagickWand shared library not found.
You probably had not installed ImageMagick library.
Try to install:
    brew install freetype imagemagick

我第一次尝试正常安装:

pip3 install wand
brew install imagemagick

然后,我尝试使用here列出的方法,并尝试了以下内容:

pip3 install wand
brew uninstall imagemagick
brew install imagemagick@6
brew unlink imagemagick && brew link imagemagick@6

export MAGICK_HOME="/opt/homebrew/opt/imagemagick@6/"
export PATH="/opt/homebrew/opt/imagemagick@6/bin:$PATH"

但我仍然遇到同样的错误。

我还尝试了 here 列出的解决方案,并确认我正在运行 64 位 python 3.7,如 here 所述。我怎样才能解决这个问题?我特别困惑,因为跑步后:

cd /opt/homebrew/opt/imagemagick@6/lib
ls

我可以看到

/opt/homebrew/opt/imagemagick@6/lib/libMagickWand-6.Q16.dylib
是 Wand 期望的位置(在上面错误的尝试路径中列出):

 ImageMagick                     libMagickCore-6.Q16.7.dylib     libMagickWand-6.Q16.a
libMagick++-6.Q16.9.dylib       libMagickCore-6.Q16.a           libMagickWand-6.Q16.dylib
libMagick++-6.Q16.a             libMagickCore-6.Q16.dylib       libMagickWand-6.Q16.la
libMagick++-6.Q16.dylib         libMagickCore-6.Q16.la          pkgconfig
libMagick++-6.Q16.la            libMagickWand-6.Q16.7.dylib
python-3.x imagemagick homebrew wand magickwand
3个回答
1
投票

我尝试在 M1 mac 上运行 Wand 时遇到了同样的问题,即使相同的步骤在 x86 系统上也有效。对我有用的解决方案是在 x86 模式下通过 brew 安装 ImageMagick:

alias brew86="arch -x86_64 /usr/local/bin/brew"
brew86 install imagemagick

# get imagemagick installation path
brew86 info imagemagick
export MAGICK_HOME=/usr/local/Cellar/imagemagick/7.1.0-49_1 
export PATH="$MAGICK_HOME/bin:$PATH"

1
投票

我在 Mac M1 机器上也面临同样的问题。我只设置 ENV 变量 在检查 brew info imagemagick 命令后像这样。至少对我来说,在 Mac M1 OS Monterey 12.6 上不需要将 imagemigick 重新安装为 arch -x86_64

export MAGICK_HOME=/opt/homebrew/Cellar/imagemagick/7.1.0-51 导出 PATH="$MAGICK_HOME/bin:$PATH"

一切正常。


0
投票

我有同样的问题,但在不同的环境中。 (很抱歉,如果这应该是一个单独的问题;这样做似乎是重复的。)我正在使用 Buildroot 2023.2 为 Raspberry Pi Zero W(即 Arm)创建操作系统映像。 ImageMagick 是 BR 的一个包含包,但 Wand 不是。我使用了 BR 的 scanpi 实用程序,它从 PyPI 中提取包,为 Wand 创建包。它似乎安装没有问题。但是,在 Pi 上运行图像时,虽然我可以“导入魔杖”,但如果我尝试“从魔杖导入图像”,我会得到同样的错误:“OSError:找不到库;尝试过的路径:[]”。

如您所见,它似乎没有任何可尝试的路径(ImageMagick 库位于 /usr/lib 中)。我尝试设置 MAGIC_HOME=/usr/lib/ 但这没有任何区别。几乎就好像 Wand 是在没有任何搜索路径的情况下编译的。有什么建议吗?

© www.soinside.com 2019 - 2024. All rights reserved.