Как построить pgmagick под pythonbrew на OS X?

У меня нет большого успеха при попытке построить pgmagick на OS X Lion с XCode 4.3.1.

Я установил и ImageMagick, и GraphicsMagick, вдоль бокового усиления, используя следующие команды (через homebrew):

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

то я клонирую репо на https://bitbucket.org/hhatto/pgmagick :

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

Однако я всегда получаю следующую ошибку:

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

Основываясь на выходе на stdout, установка ищет нужное место для повышения ( /usr/local/lib ).

Я также попробовал easy_install и pip но не повезло. Я использую Pythonbrew, но также отключил это и попытался использовать установку python на складе – все равно успеха не было.

Любые предложения о том, как я могу исправить эту проблему, или еще больше диагностировать проблему?

    5 Solutions collect form web for “Как построить pgmagick под pythonbrew на OS X?”

    Согласно моему собственному воспроизведению этой проблемы в brew 0.9 и OSX 10.6.8, проблема заключается в том, что --with-thread-unsafe не соблюдается текущим файлом формулы напитка. Вы можете проверить это, проверив формулу с brew edit boost и посмотрев, появляется ли опция в содержимом формулы.

    Из-за этого libboost_python-mt.a и libboost_python-mt.dylib строятся вместо libboost_python.a и libboost_python.dylib .

    Самые простые способы исправить это – отредактировать pgmagick setup.py, чтобы заменить boost_lib="boost_python" на boost_lib="boost_python-mt" (как указано здесь ) или следовать инструкциям и исправлять здесь . В противном случае это известная проблема.

    Файл boost_python lib внутри / usr / local / lib / назван в честь libboost_python-mt.a и libboost_python-mt.dylib, поскольку компиляция по умолчанию – поддержка w / multi-threads.

    Grep boost_lib = "boost_python" в режиме ELSE в setup.py и замените его w / boost_lib = "boost_python-mt", исправит проблему «не найден».

    Также это нормально для ln -mt версии для libboost_python.a: как описано здесь для linux boost, который больше не добавляет суффикс -mt с версии 1.42.

    Игнорировать эту строку или вы можете «с помощью boost-python = boost_python-mt python setup.py install». Вероятно, вы можете добавить '–with-boost-python = boost_python-mt' в extra_compile_args внутри setup.py, чтобы достичь той же цели.

    Кроме того, вы можете установить pgmagick через pip в управляемых envs. См. http://rohanradio.com/blog/2011/12/02/installing-pgmagick-on-os-x/

    Обратите внимание, что с июля 2014 года ускоряющая библиотека Python представляет собой отдельный пакет homebrew под названием boost-python .

     5254f8f510fb30484f8fac8be3d38e388a4392e2 Author: Tim D. Smith <git@tim-smith.us> Date: Sat Jul 19 15:37:25 2014 -0700 Split out Boost.Python 

    Вам нужно установить его отдельно, чтобы получить библиотеку libboost_python .

    Устанавливает ли DYLD_FALLBACK_LIBRARY_PATH=/usr/local/lib в среде помощь перед сборкой

    например

     $ export DYLD_FALLBACK_LIBRARY_PATH=/usr/local/lib $ hg clone https://bitbucket.org/hhatto/pgmagick/src $ cd pgmagick $ python setup.py build 

    Я отправил запрос на перенос на homebrew для создания Boost с использованием как mt, так и non mt (threaded and thread unsafe) двоичных файлов, которые необходимы для создания pgmagick.

    Оказывается, это довольно распространенная проблема, пока патч не принят, вы можете проверить или использовать мою формулу для Boost для создания pgmagick.

    Python - лучший язык программирования в мире.