Search code examples
pythonmacospythonbrew

How to build pgmagick under pythonbrew on OS X?


I'm not having much success when attempting building pgmagick on OS X Lion with XCode 4.3.1.

I've installed both ImageMagick and GraphicsMagick, along side boost, using the following commands (via homebrew):

$ brew install graphicsmagick --with-magick-plus-plus
$ brew install imagemagick --with-magick-plus-plus
$ brew install boost --with-thread-unsafe

then I'm cloning the repo at https://bitbucket.org/hhatto/pgmagick:

$ hg clone https://bitbucket.org/hhatto/pgmagick/src
$ cd pgmagick
$ python setup.py build

However I always receive the following error:

ld: library not found for -lboost_python
collect2: ld returned 1 exit status

Based on the output on stdout, setup is looking in the right place for the boost (/usr/local/lib).

I've also tried easy_install and pip but with no luck. I'm using Pythonbrew but have also disabled this and tried using the stock python install -- still no success.

Any suggestions on how I can fix the problem, or further diagnose the issue?


Solution

  • According to my own reproduction of this issue in brew 0.9 and OSX 10.6.8, the problem is --with-thread-unsafe isn't being honored by the current brew formula file. You can verify this by checking the formula with brew edit boost and seeing if the option appears within the contents of the formula.

    Because of this, libboost_python-mt.a and libboost_python-mt.dylib are being built instead of libboost_python.a and libboost_python.dylib.

    The easiest ways to fix this are to edit your pgmagick setup.py to replace boost_lib="boost_python" with boost_lib="boost_python-mt" (as pointed out here) or to follow the instructions and patch here. It's otherwise a known issue.