Кто-нибудь установил pycairo 1.10 на mac, используя новую сборку waf? Его отказ не может найти заголовки python.
Как установить PyCairo 1.10 на Mac OSX с python по умолчанию
Ответ 1
Я думаю, что waf серьезно нарушен для Mac OS X: (
Вот как это сработало для меня. После того, как python waf configure
не удалось найти Python.h, я просмотрел файл config.log, расположенный в build_directory, и выяснил, что истинная причина отказа - несовместимая архитектура. Waf script пытается создать простой исходный файл с вызовами CPython в нем с использованием архитектуры i386. Он не может этого сделать, потому что мой питон построен для архитектуры 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 означает homebrew. Вы должны использовать его вместо fink или MacPorts, чтобы следующие шаги работали для вас.
Теперь, чтобы установить cairo и pycairo, я делаю следующее:
-
brew install cairo
(версия 1.10.2 на сегодняшний день) - Получите источник pycairo для python 2.x(если вы получили моментальный снимок, он называется py2cairo, тогда как pycairo теперь требуется python 3.x). Я использовал источник из ветки master (commit 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 (если она есть).
Ответ 2
Для тех, кто возвращается к этому, я смог получить 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
Ответ 3
шаг андроида почти работает. нужно использовать (от llimllib):
export ARCHFLAGS='-arch x86_64'
на шаге 5, а затем python waf install
может преуспеть.