我正在尝试使用 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
我尝试在 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"
我在 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"
一切正常。
我有同样的问题,但在不同的环境中。 (很抱歉,如果这应该是一个单独的问题;这样做似乎是重复的。)我正在使用 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 是在没有任何搜索路径的情况下编译的。有什么建议吗?