我想在 Mac OSX Lion 上安装 Cairo 的 Python 绑定(bind),以便我可以将它们与 Apple 构建的 Python 2.7 一起使用。我倾向于使用 easy_install 安装 Python 模块等,但在这种情况下似乎不起作用:
$ sudo easy_install pycairo
Searching for pycairo
Reading http://pypi.python.org/simple/pycairo/
Reading http://cairographics.org/pycairo
Best match: pycairo 1.10.0
Downloading http://cairographics.org/releases/pycairo-1.10.0.tar.bz2
Processing pycairo-1.10.0.tar.bz2
error: Couldn't find a setup script in /tmp/easy_install-BYpm4Y/pycairo-1.10.0.tar.bz2
Stack Overflow 上的其他地方也提出了类似的问题,但答案并没有解释我在这里做错了什么。
这个问题与 Python 2.6 相关,接受的答案使用 Macports 而不是 easy_install,而另一个答案似乎建议使用我在上面尝试过的方法(失败):
How do you install pycairo on Mac OS X?
这个问题与从源代码构建 pycairo 有关,我不想这样做:
请您参考如下方法:
首先,您几乎总是希望尽可能使用 pip 而不是 easy_install。 “只要可能”几乎意味着“除了 pip 本身和 readline 之外的所有内容。” Apple 没有预安装 pip,但您可以只使用 sudo easy_install pip 然后在任何地方使用 sudo easy_install foo 代替 sudo pip install foo.
其次,pycairo 需要 Python 3.1+。您需要 py2cairo,Python 2.6-2.7 的版本。由于没有用于此的 PyPI 包,您必须下载它或手动 git 克隆它。但幸运的是,pip 会自动为您完成此操作:sudo pip install http://cairographics.org/releases/py2cairo-1.10.0.tar.bz2 或 sudo pip install git+https://git.cairographics.org/git/py2cairo.
不幸的是,并不是所有的东西都可以通过 pip 或 easy_install 安装。如果任一失败,您必须阅读 PyPI 页面、主页或项目的文档。
对于 pycairo,它不能被 easy_install/pip install 的原因是它是使用 构建的waf 而不是 distutils(并且没有人为 waf 构建编写过 distutils 包装器)。但您并不真正关心为什么它不起作用,您只关心您必须做什么。
好吧,说明会告诉您必须做什么。您可能认为您不想从源代码构建,但这正是 pip 通常所做的(同样 easy_install),所以它不是害怕的东西。
但所有这些都不是主要问题的次要问题:pycairo Python 模块需要 cairo 库(同样是 pixman),它你没有。 (实际上,根据您的 OS X 版本,您可能有一个无法从外部链接的私有(private)版本,或者一个非常旧的版本对 pycairo 来说不够好,或者根本没有版本......但这三个中的任何一个都等同于就你而言。)
所以你必须在构建pycairo之前从某个地方获取它。 (而且,即使您在其他地方构建了一个副本,您也无法使用它。)
与文档的建议相反,我会使用 Homebrew而不是 MacPorts 来安装 cairo。 MacPorts 旨在构建一种完全独立的工具集——所以如果你想安装 cairo 就很好,这样你就可以将 MacPorts pycairo 安装到你的 MacPorts 中/opt/local/bin/python,但如果您希望获得为股票 Apple /usr/bin/python 构建的 pycairo,它就不是那么好>.
