如何在osx上安装pycairo?

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)

我个人不需要使用指令的最后一部分,但它可能会对你有所帮助.

  • 如果您使用的是 python 3,则可以使用“brew install py3cairo”代替。 (3认同)

Yoa*_*oav 7

好.我解决了 将解决方案放在这里供将来参考,它可能对某人有帮助.

基本上,整个ports/fink系统有点搞砸了,osx并没有真正与linux-y世界相配.

因此,我需要在OSX上安装pycairo的步骤是:

  • 下载pixman,cairo,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)

这应该做到......


Ned*_*ily 7

您似乎在这里混合了各种安装选项.MacPorts包系统port install命令应该自动引入特定包所需的所有依赖项,因此诀窍是从正确的顶级项目开始.对于python包,MacPorts目前有一个通用的约定:开头的包py-是针对python 2.4的,包含的py25-是2.5和py26-2.6.目前py-cairo,py25-cairopy26-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更复杂.我在这里解释了这个过程.但是只要你保持路径直线,就没有迫切的需要去除.