如何使用默认的python在Mac OSX上安装PyCairo 1.10

16 python pycairo

有没有人使用新的waf构建在mac上安装了pycairo 1.10?它的失败无法找到python标头.

Ale*_*lik 13

我认为waf严重破坏Mac OS X :(

这是它对我有用的方式.在python waf configure找不到Python.h之后,我查看了build_directory中config.log文件,发现失败的真正原因是架构不兼容.waf脚本尝试使用i386架构在其中构建一个包含CPython调用的简单源文件.它没有这样做,因为我的python是为x86_64架构而构建的.

我想,你可以将python重建为通用二进制文件,我没试过.但是,可以使用x86_64架构构建pycairo.这是如何做.


我的设置:

$ 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
Run Code Online (Sandbox Code Playgroud)

Importrant:我的python版本是为x86_64架构而构建的.在执行下述步骤之前,请确保您也是如此.

brew代表自制软件.您必须使用它而不是fink或MacPorts才能使以下步骤适合您.


现在,要安装cairo和pycairo,我会执行以下操作:

  1. brew install cairo(截至今日的版本1.10.2)
  2. 获取python 2.x的pycairo源代码(如果你得到一个快照,它被命名为py2cairo,而pycairo现在需要python 3.x).我使用了master分支的源代码(commit f3435910d8f5365b45ebd4216f4043383c9e3e19)
  3. wscript在您选择的编辑器中打开,找到env = ctx.env函数中的行configure并在其下面添加以下行

    env.append_unique('CFLAGS', ['-arch', 'x86_64'])

  4. 保存文件

  5. 在终端中运行以下命令:

    export CC=/usr/bin/gcc

    export PKG_CONFIG_PATH=/usr/local/Cellar/cairo/1.10.2/lib/pkgconfig/

    重要提示:如果您通过自制软件安装cairo,后一条路径将仅适用于您

  6. 然后运行pycairo的INSTALL文件中描述的waf命令:

    python waf configure

    python waf build

    python waf install

这应该做到这一点.如果它不适合你,我认为最好在pycairo邮件列表上提出主题(如果有的话).

  • 我必须遵循一些额外的步骤,通过以下说明正确设置LD_LIBRARY_PATH和其他一些环境变量:http://www.niconomicon.net/blog/2011/10/09/2120.wrestling.python.snow.leopard (2认同)
  • 我按照这些步骤但得到错误`开罗pkgconfig需要xcb-shm包,它没有安装.我将`PKG_CONFIG_PATH`改为`export PKG_CONFIG_PATH =/usr/local/Cellar/cairo/<VERSION>/lib/pkgconfig /:/ opt/X11/lib/pkgconfig`,配置步骤工作正常.资料来源:https://github.com/mxcl/homebrew/issues/14123 (2认同)

小智 12

对于任何回到这里的人,基于llimllib的链接,我能够在OSX Lion上安装py2cairo,方法略有不同.希望这可以帮助:

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
Run Code Online (Sandbox Code Playgroud)

  • 使用Mac Ports cairo库为我工作,只是没有设置pkg_config_path上面的标志就够了 (2认同)