解决brew默认安装iamgemagick7致使wand库运行错误问题

写在前面

由于前几天手贱,升级了一下homebrew下的formula,不当心把imagemagick升级到了7的版本,在运行项目的时候一直报错brew install freetype imagemagick,找了好久才发如今wand库下的api.py文件中versions = '', '-6', '-Q16', '-Q8', '-6.Q16'以及options = '', 'HDRI', 'HDRI-2',推测缘由是由于索引不到/usr/local/lib中imagemagick7的相关库,尝试改了几回源码都没有解决问题,其实python的Wand库最新仍是0.4.4的版本,并不支持imagemagick7,,最后想办法把imagemagick降到6的版本。
可是homebrew安装指定版本又是一个大问题,查找的brew versions命令已经被移除了。后来在stackoverflow上找到了一篇有用的回答,才最终解决问题。https://stackoverflow.com/que...python

Homebrew

homebrew把本身的formula都放在/usr/local/Cella/下的文件中.api

卸载imagemagick7的版本

imagemagick7在/usr/local/Cella/下的名称为imagemagick,imagemagick6的名称为imagemagick@6,使用brew uninstall imagemagick会卸载imagemagick7.若是没有安装过imagemagick的话,能够忽略这一步。bash

查找imagemagick

输入brew search imagemagick会出现以下的显示,画勾的是已经安装的版本。this

FlyingpangdeMacBook-Pro:~ Flyingpang$ brew search imagemagick
==> Searching local taps...
imagemagick@6 ✔                          imagemagick
==> Searching taps on GitHub...
==> Searching blacklisted, migrated and deleted formulae...

若是没有安装imagemagick6的话,使用 brew install imagemagick@6来安装。code

作符号连接

安装完之后,它会有以下的提示文字。orm

This formula is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.

If you need to have this software first in your PATH run:
  echo 'export PATH="/usr/local/opt/imagemagick@6/bin:$PATH"' >> ~/.bash_profile

For compilers to find this software you may need to set:
    LDFLAGS:  -L/usr/local/opt/imagemagick@6/lib
    CPPFLAGS: -I/usr/local/opt/imagemagick@6/include
For pkg-config to find this software you may need to set:
    PKG_CONFIG_PATH: /usr/local/opt/imagemagick@6/lib/pkgconfig

若是安装的是最新的版本,brew会自动给你作好符号连接。因为这个是旧版的,因此没有作连接。先按照提示运行echo 'export PATH="/usr/local/opt/imagemagick@6/bin:$PATH"' >> ~/.bash_profile,运行完以后记得使用命令source ~/.bash_profile让修改生效。
而后cd /usr/local/lib,该目录下都是一些经常使用的库,你须要把刚装好的imagemagick@6下的全部lib移动到这边,lib的路径/usr/local/Cellar/imagemagick@6/6.9.9-23/lib,注意,其中的6.9.9-23根据你安装的版本改变。索引

FlyingpangdeMacBook-Pro:lib Flyingpang$ ln -s /usr/local/Cellar/imagemagick@6/6.9.9-23/lib/libMagickCore-6.Q16.dylib libMagickCore-6.Q16.dylib
FlyingpangdeMacBook-Pro:lib Flyingpang$ ln -s /usr/local/Cellar/imagemagick@6/6.9.9-23/lib/libMagick++-6.Q16.8.dylib libMagick++-6.Q16.8.dylib
FlyingpangdeMacBook-Pro:lib Flyingpang$ ln -s /usr/local/Cellar/imagemagick@6/6.9.9-23/lib/libMagickCore-6.Q16.la libMagickCore-6.Q16.la
FlyingpangdeMacBook-Pro:lib Flyingpang$ ln -s /usr/local/Cellar/imagemagick@6/6.9.9-23/lib/libMagick++-6.Q16.a libMagick++-6.Q16.a
FlyingpangdeMacBook-Pro:lib Flyingpang$ ln -s /usr/local/Cellar/imagemagick@6/6.9.9-23/lib/libMagickWand-6.Q16.5.dylib libMagickWand-6.Q16.5.dylib
FlyingpangdeMacBook-Pro:lib Flyingpang$ ln -s /usr/local/Cellar/imagemagick@6/6.9.9-23/lib/libMagick++-6.Q16.dylib libMagick++-6.Q16.dylib
FlyingpangdeMacBook-Pro:lib Flyingpang$ ln -s /usr/local/Cellar/imagemagick@6/6.9.9-23/lib/libMagickWand-6.Q16.a libMagickWand-6.Q16.a
FlyingpangdeMacBook-Pro:lib Flyingpang$ ln -s /usr/local/Cellar/imagemagick@6/6.9.9-23/lib/libMagick++-6.Q16.la libMagick++-6.Q16.la
FlyingpangdeMacBook-Pro:lib Flyingpang$ ln -s /usr/local/Cellar/imagemagick@6/6.9.9-23/lib/libMagickWand-6.Q16.dylib libMagickWand-6.Q16.dylib
FlyingpangdeMacBook-Pro:lib Flyingpang$ ln -s /usr/local/Cellar/imagemagick@6/6.9.9-23/lib/libMagickCore-6.Q16.5.dylib libMagickCore-6.Q16.5.dylib
FlyingpangdeMacBook-Pro:lib Flyingpang$ ln -s /usr/local/Cellar/imagemagick@6/6.9.9-23/lib/libMagickWand-6.Q16.la libMagickWand-6.Q16.la
FlyingpangdeMacBook-Pro:lib Flyingpang$ ln -s /usr/local/Cellar/imagemagick@6/6.9.9-23/lib/libMagickCore-6.Q16.a libMagickCore-6.Q16.a
FlyingpangdeMacBook-Pro:lib Flyingpang$ ln -s /usr/local/Cellar/imagemagick@6/6.9.9-23/lib/ImageMagick ImageMagick

如今wand库就能够直接用了。homebrew

相关文章
相关标签/搜索