作者:停留的烟蒂_984 | 来源:互联网 | 2023-05-19 07:51
Hasanyoneinstalledpycairo1.10onthemacusingthenewwafbuild?Itsfailingoncantfindpyth
Has anyone installed pycairo 1.10 on the mac using the new waf build? Its failing on can't find python headers.
有没有人使用新的waf构建在mac上安装了pycairo 1.10?它的失败无法找到python标头。
3 个解决方案
13
I think waf is seriously broken for Mac OS X :(
我认为waf严重破坏Mac OS X :(
Here's how it worked for me. After python waf configure
failed to find Python.h, I looked through the config.log file located in build_directory and found out that the true cause of failure was incompatible architecture. The waf script tries to build a simple source file with CPython calls in it using i386 architecture. It fails to do so, because my python is built for the x86_64 architecture.
这是它对我有用的方式。在python waf configure找不到Python.h后,我查看了build_directory中的config.log文件,发现失败的真正原因是架构不兼容。 waf脚本尝试使用i386架构在其中构建一个包含CPython调用的简单源文件。它没有这样做,因为我的python是为x86_64架构而构建的。
I guess, you could rebuild python as a universal binary, I haven't tried that. It is possible, however, to build pycairo using the x86_64 architecture. Here's how.
我想,你可以将python重建为通用二进制文件,我没试过。但是,可以使用x86_64架构构建pycairo。就是这样。
My setup:
我的设置:
$ 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
Importrant: my python version is built for the x86_64
architecture. Make sure it is also the case for you before performing the steps described below.
Importrant:我的python版本是为x86_64架构而构建的。在执行下述步骤之前,请确保您也是如此。
brew stands for homebrew. You must use it instead of fink or MacPorts in order for the following steps to work for you.
brew代表自制。您必须使用它而不是fink或MacPorts才能使以下步骤适合您。
Now, to install cairo and pycairo I do the following:
现在,要安装cairo和pycairo,我会执行以下操作:
brew install cairo
(version 1.10.2 as of today)
- brew install cairo(截至今日版本1.10.2)
- Get pycairo source for python 2.x (if you get a snapshot, it is named py2cairo, whereas pycairo now requires python 3.x). I used the source from master branch (commit f3435910d8f5365b45ebd4216f4043383c9e3e19)
- 获取python 2.x的pycairo源代码(如果获得快照,则命名为py2cairo,而pycairo现在需要python 3.x)。我使用了master分支的源代码(commit f3435910d8f5365b45ebd4216f4043383c9e3e19)
Open wscript
in your editor of choice, locate the line env = ctx.env
in the function configure
and add the following line below it
在您选择的编辑器中打开wscript,在函数configure中找到行env = ctx.env并在其下面添加以下行
env.append_unique('CFLAGS', ['-arch', 'x86_64'])
env.append_unique('CFLAGS',[' - arch','x86_64'])
Save the file
保存文件
Run these commands in your terminal:
在终端中运行以下命令:
export CC=/usr/bin/gcc
export CC = / usr / bin / gcc
export PKG_CONFIG_PATH=/usr/local/Cellar/cairo/1.10.2/lib/pkgconfig/
export PKG_CONFIG_PATH = / usr / local / Cellar / cairo / 1.10.2 / lib / pkgconfig /
Important: the latter path will only work for you if you installed cairo via homebrew
重要提示:如果您通过自制软件安装cairo,后一条路径将仅适用于您
Then run the waf commands described in the pycairo's INSTALL file:
然后运行pycairo的INSTALL文件中描述的waf命令:
python waf configure
python waf配置
python waf build
python waf build
python waf install
python waf安装
This should do it. If it doesn't work for you, I think it's better to raise the topic on the pycairo mailing list (if it has one).
这应该做到这一点。如果它不适合你,我认为最好在pycairo邮件列表上提出主题(如果有的话)。