Yoa*_*oav 11 python macos installation makefile cairo
我正在尝试在OSX下安装pycairo(cairo图形库的 Python绑定).
我开始了
easy_install pycairo
Run Code Online (Sandbox Code Playgroud)
得到了:
Requested 'cairo >= 1.8.8' but version of cairo is 1.0.4
error: Setup script exited with Error: cairo >= 1.8.8 not found
Run Code Online (Sandbox Code Playgroud)
所以我去了cairo的网站并下载了最新的cairo软件包(1.8.8),以及最新的pixman软件包(两个源软件包 - 找不到osx二进制文件)
解压缩两者,每个都在自己的目录中.对于pixman,常规./configure ; make ; sudo make install工作只是找到cairo,./ configure似乎工作,但make失败了:
In file included from cairo-analysis-surface.c:37:
cairoint.h:71:20: error: pixman.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
为什么我必须努力让软件库在"正常工作"的操作系统上工作?为什么darwin不像linux?
Min*_*ina 10
我发现这条指令非常有用,而且不那么令人困惑.我在优胜美地,对我来说效果很好.该指令使用自制软件进行安装.所以,如果你已经拥有自制软件,这两个命令应该会有所帮助:
$ brew install cairo --use-clang
$ brew install py2cairo
Run Code Online (Sandbox Code Playgroud)
对于非Homebrew安装的Python,此指令建议将PYTHONPATH设置为查找pycairo.您可以在.bashrc/.profile/.w中设置PYTHONPATH,如下所示:
PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH.
Run Code Online (Sandbox Code Playgroud)
我个人不需要使用指令的最后一部分,但它可能会对你有所帮助.
好.我解决了 将解决方案放在这里供将来参考,它可能对某人有帮助.
基本上,整个ports/fink系统有点搞砸了,osx并没有真正与linux-y世界相配.
因此,我需要在OSX上安装pycairo的步骤是:
提取一切.然后:
cd PIXMAN_DIR ; ./configure ; make ; sudo make install
cd CAIRO_DIR ; cp PIXMAN_DIR/pixman/*.h . ; ./configure ; make ; sudo make install
cd PYCAYRO_DIR; locate cairo.pc
Run Code Online (Sandbox Code Playgroud)
希望有几个地方可以归还.选择最可能的一个(一个最新的开罗).对我来说,它是"/opt/local/lib/pkgconfig/cairo.pc"并执行:
export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig/
Run Code Online (Sandbox Code Playgroud)
在此之后,仍然在PYCAIRO_DIR中,执行:
python setup.py install
Run Code Online (Sandbox Code Playgroud)这应该做到......
您似乎在这里混合了各种安装选项.MacPorts包系统port install命令应该自动引入特定包所需的所有依赖项,因此诀窍是从正确的顶级项目开始.对于python包,MacPorts目前有一个通用的约定:开头的包py-是针对python 2.4的,包含的py25-是2.5和py26-2.6.目前py-cairo,py25-cairo和py26-cairo在MacPorts的可用的软件包.
通过选择py-cairo你选择python2.4版本,你可能会发现MacPorts为你构建并安装了python2.4(链接在/opt/local/bin/python2.4),如果你启动它,你可能会发现你可以在那里导入cairo.现在可能已经满足您的需求了,但是Python 2.4已经很老了,不再支持了,所以如果你刚刚开始,最好从Python 2.6开始,这是当前两个版本的Python之一.为此,您需要做的就是:
sudo port install py26-cairo
Run Code Online (Sandbox Code Playgroud)
这应该带来任何缺少的依赖,主要是你可以运行的MacPorts python2.6 /opt/local/bin/python2.6.您可能希望更改$PATHshell启动脚本(可能是.bash_profile),以便/opt/local/bin尽早放入搜索路径.
因为安装Cairo及其python绑定似乎相当复杂,所以坚持使用完整的MacPorts解决方案应该更容易也更好.这确实意味着您已经不必要地(并且无害地)安装了几个您不需要的Python实例.但是如果你想稍微清理一下,可以用以下方法轻松删除MacPorts python24:
sudo port uninstall py-cairo python24
Run Code Online (Sandbox Code Playgroud)
完全删除python.org安装的python更复杂.我在这里解释了这个过程.但是只要你保持路径直线,就没有迫切的需要去除.