bluecrystal 发表于 2013-1-27 05:41:36

[tips]PythonMagick的安装

PythonMagick是ImageMagick的python开发包。
       下载:PythonMagick-0.7.tar.gz
       安装之前确认是否安装了下列库或包:
        boost
              boost-python
              python 2.5
              Magick++ (>= 6.2)
       还要确认是否安装了下列工具:
        pkg-config
             libtool
             make
       然后执行下列命令进行安装:
        $ tar -xzf PythonMagick-0.7.tar.gz
             $ cd PythonMagick-0.7
             $ ./configure
             $ make
             $ make install
       make install的时候,必须具备root权限,看起来似乎很顺利,标准的安装过程,但是实际上一开始就出问题了
       问题一: ./configure的时候找不到ImageMagick,实际上我是安装了的,关于ImageMagick的安装请参看我的博文:ImageMagick软件包简介及安装,这个时候进入当前登录用户的home目录,打开.bash_profile文件,加入以下几行:
        PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
              export PKG_CONFIG_PATH
       其中/usr/local/lib/pkgconfig为ImageMagick的包描述文件所在目录
       保存并退出到命令行后,执行下列命令使之生效:
        $ source .bash_profile
       做完上述配置后,./configure是没有问题了。
       问题二: make的时候会报 no matching function for call to 'registry_lookup(const volatile void (*)())' 的错误,这个问题比较麻烦,在google上找了很久,说是boost-python不再支持void*的原因,经过自己的一些尝试,才找到解决办法:
       1首先把下列提及文件中的void* or void * 全部替换为unsigned char* or unsigned char *,注意在替换的时候,要符合c++的语法:
        PythonMagick-0.7/pythonmagick_src/_Blob.cpp _Image.cpp
              /usr/local/include/Magick++/Blob.h Image.h
       其中/usr/local/include/Magick++为ImageMagick安装后的头文件,可能会有所不同;
       2进入PythonMagick-0.7/pyste_src,找到Blob.pyste、Image.pyste,更改文件中的路径为正群的安装路径;
       3进入PythonMagick-0.7/helpers_src,找到Blob.cpp,打开,将其内容替换为:
<div class="code_title">cpp 代码
页: [1]
查看完整版本: [tips]PythonMagick的安装