Кто-нибудь устанавливал pycairo 1.10 на Mac с помощью новой сборки waf? Его сбой не может найти заголовки python.
Как установить PyCairo 1.10 на Mac OSX с Python по умолчанию
Ответы (3)
Я думаю, что waf серьезно сломан для Mac OS X :(
Вот как это сработало для меня. После того, как python waf configure
не удалось найти Python.h, я просмотрел файл config.log, расположенный в каталог_сборки, и обнаружил, что истинной причиной сбоя была несовместимая архитектура. Сценарий waf пытается создать простой исходный файл с вызовами CPython, используя архитектуру i386. Это не удается, потому что мой python построен для архитектуры x86_64.
Я думаю, вы можете пересобрать python как универсальный двоичный файл, я этого не пробовал. Однако можно собрать pycairo с использованием архитектуры x86_64. Вот как.
Моя установка:
$ python --version
Python 2.7.2
$ type python
python is /usr/local/bin/python
$ file /usr/local/bin/python
/usr/local/bin/python: Mach-O 64-bit executable x86_64
$ brew --version
0.8
Важно: моя версия Python создана для архитектуры x86_64
. Прежде чем выполнять шаги, описанные ниже, убедитесь, что это относится и к вам.
brew означает домашнее пиво. Вы должны использовать его вместо fink или MacPorts, чтобы следующие шаги работали для вас.
Теперь, чтобы установить cairo и pycairo, я делаю следующее:
brew install cairo
(версия 1.10.2 на сегодняшний день)- Получите исходный код pycairo для python 2.x (если вы получите снимок, он будет называться py2cairo, тогда как для pycairo теперь требуется python 3.x). Я использовал источник из ветки master (коммит f3435910d8f5365b45ebd4216f4043383c9e3e19)
Откройте
wscript
в выбранном вами редакторе, найдите строкуenv = ctx.env
в функцииconfigure
и добавьте следующую строку под ней.env.append_unique('CFLAGS', ['-arch', 'x86_64'])
Сохраните файл
Запустите эти команды в своем терминале:
export CC=/usr/bin/gcc
export PKG_CONFIG_PATH=/usr/local/Cellar/cairo/1.10.2/lib/pkgconfig/
Важно: последний путь будет работать только в том случае, если вы установили cairo через homebrew
Затем запустите команды waf, описанные в файле INSTALL pycairo:
python waf configure
python waf build
python waf install
Это должно сделать это. Если у вас не получится, думаю, лучше поднять тему в рассылке pycairo (если она есть).
Cairo pkgconfig requires xcb-shm package which is not installed
. Я изменил PKG_CONFIG_PATH
на export PKG_CONFIG_PATH=/usr/local/Cellar/cairo/<VERSION>/lib/pkgconfig/:/opt/X11/lib/pkgconfig
, и шаг настройки сработал. Источник: github.com/mxcl/homebrew/issues/14123
- person Jonathan Drake; 24.02.2013
Для тех, кто возвращается к этому, я смог установить py2cairo на OSX Lion с немного другим подходом, основанным на ссылке llimllib. Надеюсь это поможет:
python waf clean
export PYTHONPATH=/Library/Frameworks/Python.framework/Versions/2.7/
export LD_LIBRARY_PATH=/Library/Frameworks/Python.framework/Versions/2.7/:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/Library/Frameworks/Python.framework/Versions/2.7/lib:$LD_LIBRARY_PATH
export LINKFLAGS='-search_dylibs_first -L /Library/Frameworks/Python.framework/Versions/2.7/lib/'
export ARCHFLAGS='-arch x86_64'
export CC=/usr/bin/gcc-4.2
export PKG_CONFIG_PATH=/usr/local/Cellar/cairo/1.10.2/lib/pkgconfig/
python waf configure --prefix=$PYTHONPATH
python waf build
python waf install
Шаг андроида почти работает. нужно использовать (из llimllib):
export ARCHFLAGS='-arch x86_64'
на шаге 5, и тогда python waf install
может преуспеть.