问题
MAC上python调用ImageMagick
时遇到以下问题
.This error can be due to the fact that ImageMagick is not installed on your computer, or (for Windows users) that you didn't specify the path to the ImageMagick binary in file conf.py, or that the path you specified is incorrect
(no such file), '/opt/homebrew/opt/little-cms2/lib/liblcms2.2.dylib' (no such file)
表示本地没有安装ImageMagick
解决
来到官网进行安装
https://imagemagick.org/script/download.php
这里有两种方式
一种直接用homebrew进行安装
brew install imagemagick
一种是用编译好的二进制文件
先尝试了用编译好的二进制文件,执行时发现会有macOS系统安全警告提示
这就很烦了,还需要设置允许来自未知开发者的应用程序
等一堆选项。
改了一堆操作后放弃了。
直接使用homebrew进行安装
brew install imagemagick
安装好的imagemagick
路径
/opt/homebrew/Cellar/imagemagick/
python中设置的环境变量
IMAGEMAGICK_BINARY = os.getenv('IMAGEMAGICK_BINARY', 'auto-detect')
安装好后可以使用。
那么问题来了,我希望换个路径调用imagemagick
,比如将imagemagick
放到项目目录内,而不是放到/opt/homebrew/
目录内。
将imagemagick
文件直接拷贝到项目目录,并指定IMAGEMAGICK_BINARY
环境变量是不行的。
会报错
(no such file), '/opt/homebrew/opt/little-cms2/lib/liblcms2.2.dylib' (no such file)
看着像liblcms2.2.dylib
库没找到
最终的解决方法:
其实除了IMAGEMAGICK_BINARY
外,还需要额外设置三个环境变量
- DYLD_LIBRARY_PATH
- MAGICK_CONFIGURE_PATH
- MAGICK_CODER_MODULE_PATH
含义:
DYLD_LIBRARY_PATH
指定了动态链接器应该搜索共享库(.dylib 文件)的额外路径。
MAGICK_CONFIGURE_PATH
指定了 ImageMagick配置文件路径。
MAGICK_CODER_MODULE_PATH
指定了 ImageMagick编码器和解码器模块路径。
完整的路径参考
export IMAGEMAGICK_BINARY="/ImageMagick/7.1.1-36/bin/magick"
export DYLD_LIBRARY_PATH="ImageMagick/7.1.1-36/lib"
export MAGICK_CONFIGURE_PATH="ImageMagick/7.1.1-36/lib/ImageMagick/config-Q16HDRI"
export MAGICK_CODER_MODULE_PATH="ImageMagick/7.1.1-36/lib/ImageMagick/modules-Q16HDRI/coders"
由于不想将imagemagick
安装在默认路径下,所以花了些时间去解决这个问题。
如果无所谓的话,直接brew install imagemagick
完事。