如何在Mac OSX上使用默认Python安装PyCairo 1.10
有没有人用新的waf构建工具在Mac上安装pycairo 1.10?它在安装时出错,说找不到Python的头文件。
3 个回答
安卓的步骤几乎可以完成。你需要在第5步中使用(来自llimllib):
export ARCHFLAGS='-arch x86_64'
然后运行 python waf install
就能成功了。
对于任何回来看这个的人,我在OSX Lion上安装py2cairo时,采用了一种稍微不同的方法,参考了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
我觉得waf在Mac OS X上真的有点问题 :(
这是我遇到的情况。在运行python waf configure
时,它找不到Python.h,我查看了位于build_directory的config.log文件,发现失败的真正原因是架构不兼容。waf脚本试图用i386架构构建一个简单的源文件,而我的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
重要提示:我的Python版本是为x86_64
架构构建的。在执行下面的步骤之前,请确保你的Python也是这个架构。
brew是指homebrew。你必须使用它,而不是fink或MacPorts,这样下面的步骤才能对你有效。
现在,要安装cairo和pycairo,我会这样做:
brew install cairo
(截至今天,版本是1.10.2)获取适用于Python 2.x的pycairo源代码(如果你获取的是快照,它叫py2cairo,而pycairo现在需要Python 3.x)。我使用的是master分支的源代码(提交号f3435910d8f5365b45ebd4216f4043383c9e3e19)
在你喜欢的编辑器中打开
wscript
,找到configure
函数中的env = ctx.env
这一行,然后在下面添加以下一行: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/
重要提示:后面的路径只有在你通过homebrew安装cairo时才有效
然后运行pycairo的INSTALL文件中描述的waf命令:
python waf configure
python waf build
python waf install
这样应该就可以了。如果不行,我觉得最好在pycairo的邮件列表上提问(如果有的话)。