Подтвердить что ты не робот

Как установить PyCairo 1.10 на Mac OSX с python по умолчанию

Кто-нибудь установил pycairo 1.10 на mac, используя новую сборку waf? Его отказ не может найти заголовки python.

4b9b3361

Ответ 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 может преуспеть.