Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
PythonMagick on OS X

Installing PythonMagick on OS X

  1. brew install boost - will take a lot of time and make your Mac hot
  2. brew install --with-magick-plus-plus imagemagick
  3. cd <path_to_PythonMagick_source>
  4. ./configure --with-boost=<path_to_boost_root>
  5. make
  6. make install
  7. python -c "import PythonMagick"

If PythonMagick build fails saying that it couldn't find -lboost_python navigate to <path_to_boost_root>/lib/, ln -s libboost_python-mt.dylib libboost_python.dylib and run make again.

Tested on 10.6.8 with Python 2.6.7 (custom build). Should work with Lion running stock 2.7.

NOTE: Looks like I was too quick to call it done. The module imports but raises exceptions when used. Bummer.

Ringil commented Jun 10, 2012

Did you ever figure out how to solve the import problem?

Owner

tomekwojcik commented Jun 10, 2012

Ringil commented Jun 11, 2012

I solved this problem by copying from where make install installed PythonMagick /usr/local/lib/python2.7/site-packages/PythonMagick to where Python actually looks on a OS X Lion, /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/

nfglynn commented Jul 5, 2012

Just a quick note for anyone checking this in future, after successfully building PythonMagick on Mac OS X Lion I was getting:

>>> import PythonMagick
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "PythonMagick/__init__.py", line 1, in <module>
from . import _PythonMagick
ImportError: cannot import name _PythonMagick

This can be fixed by changing the first line of __init__.py in PythonMagick (Usually to be found in site-packages, in my case /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/PythonMagick) from:

from . import _PythonMagick

to

import _PythonMagick

is there any howto about installing PythonMagick on mac os x? It's annoying problem.

can find ./configure file .

RemyMuhire@Muhires-MBP:~$ cd /usr/local/Cellar/imagemagick/6.8.9-8
RemyMuhire@Muhires-MBP:/usr/local/Cellar/imagemagick/6.8.9-8$ ./configure --with-boost=/usr/local/Cellar/boost/1.56.0
-bash: ./configure: No such file or directory
RemyMuhire@Muhires-MBP:/usr/local/Cellar/imagemagick/6.8.9-8$

DWishR commented Nov 6, 2015

I got it working. Note that in the future boost/1.59.0 will change to something else.
Download PythonMagick-0.9.12 and unzip/untar/unwhatevs

$ brew install --with-magick-plus-plus imagemagick
$ brew install boost --with-python
$ brew install boost-python

$ cd ~/Downloads/PythonMagick-0.9.12
$ BOOST_ROOT=/usr/local/Cellar/boost/1.59.0/
$ ./configure

Now you need to edit Makefile and pythonmagick_src/Makefile to include the boost library. You want to find two lines, one that starts with DEFAULT_INCLUDES and the other with LDFLAGS. Add boost paths to the end of those lines so they look something like this:
DEFAULT_INCLUDES = -I. -I$(top_builddir)/config -I/usr/local/Cellar/boost/1.59.0/include
LDFLAGS = -L/usr/local/Cellar/boost-python/1.59.0/lib

$ make
$ make install

Edit __init__.py in the PythonMagick package folder, I found it at /usr/local/lib/python2.7/site-packages/PythonMagick. If you can't find the path, it should be at the end of the output of make install, on a line like: /bin/sh ./libtool --mode=install /usr/bin/install -c _PythonMagick.la '/usr/local/lib/python2.7/site-packages/PythonMagick'.

You want to change the first line of __init__.py from:

from . import _PythonMagick

to:

import _PythonMagick

And that should do it!

rgvasquez commented Jul 8, 2016 edited

@DWishR I was able to get through the instructions, but it still gives me "No module named PythonMagick" I noticed that even though I edited init.py, the corresponding init.pyc and init.pyo does not get rebuild when I import PythonMagick.

@DWishR Just followed your instructions to a tee (correcting for new versions) and it worked perfectly. Thanks!

nazikus commented Nov 20, 2016 edited

@DWishR as of today, your solution still works, thanks.
PythonMagick-0.9.15
boost-1.62.0
boost-python-1.62.0

note: brew install --with-magick-plus-plus imagemagick gives warning
Warning: imagemagick: this formula has no --with-magick-plus-plus option so it will be ignored!
but nevertheless it worked, thanks.

duyvk commented Dec 27, 2016 edited

i got this error when running "make"

 Making all in helpers_src

  CXX      libhelper_la-Blob.lo

  CXXLD    libhelper.la

  CXXLD    _PythonMagick.la

clang: warning: argument unused during compilation: '-pthread'

ld: library not found for -l-L/usr/local/Cellar/imagemagick/6.9.7-0/lib

clang: error: linker command failed with exit code 1 (use -v to see invocation)

make[1]: *** [_PythonMagick.la] Error 1

make: *** [all-recursive] Error 1

Do you guys know what may cause the problem ?
Thanks !

CXX libpymagick_la-_Image.lo
_Image.cpp:400:92: error: no member named 'alphaColor' in 'Magick::Image'
.def("alphaColor", (void (Magick::Image::)(const Magick::Color&) )&Magick::Image::alphaColor)
~~~~~~~~~~~~~~~^
_Image.cpp:401:86: error: no member named 'alphaColor' in 'Magick::Image'
.def("alphaColor", (Magick::Color (Magick::Image::
)() const)&Magick::Image::alphaColor)
~~~~~~~~~~~~~~~^
2 errors generated.
make[1]: *** [libpymagick_la-_Image.lo] Error 1
make: *** [all-recursive] Error 1

Anyone getting these errors?

anasamoudi commented Apr 10, 2017 edited

@krishnakt031990 Yes I'm getting the same error.

Managed to solve it by downloading this version http://www.imagemagick.org/download/python/PythonMagick-0.9.16.tar.bz2

JonniePerkgit commented Apr 12, 2017 edited

@krishnakt031990 same error for me. @anasamoudi I tried your solution and it didn't work.... Any other ideas?

Is there an issue with the new release? I can't find anything on yee old Google about this...

OS: macOS 10.12.4
Python: 2.7.13
Trying to install: PythonMagick-0.9.16 (I've also tried 0.9.15 which produced the same error)

@duyvk Hey, I'm getting this error too

Making all in helpers_src
  CXX      libhelper_la-Blob.lo
  CXXLD    libhelper.la
  CXXLD    _PythonMagick.la
clang: warning: argument unused during compilation: '-pthread' [-Wunused-command-line-argument]
ld: library not found for -l-L/usr/local/Cellar/imagemagick@6/6.9.8-10/lib
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [_PythonMagick.la] Error 1
make: *** [all-recursive] Error 1

Have you solved the problem yet?
Thanks!

@Jasper912 @duyvk
I had the same problem the BOOST_PYTHON_LIB was empty in the MakeFile. I just removed the -l{BOOST_PYTHON_LIB} when it appear in the MakeFile and it compile.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment