1

我想在 Mac OSX Lion 上为 Cairo 安装 Python 绑定,以便可以将它们与 Apple 构建的 Python 2.7 一起使用。我倾向于使用 安装 Python 模块等easy_install,但在这种情况下似乎不起作用:

$ 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,而另一个答案似乎是建议使用我上面尝试过的方法(但失败了):

你如何在 Mac OS X 上安装 pycairo?

这个问题与从源代码构建pycairo有关,我不想这样做:

如何在 osx 上安装 pycairo?

4

1 回答 1

8

首先,您几乎总是想使用pip而不是easy_install尽可能地使用。而“只要有可能”几乎意味着“除了pip它自己之外的所有事物,并且readline。” Apple 不会预先安装,但pip您可以随意sudo easy_install pip安装。sudo easy_install foosudo 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.bz2sudo pip install git+https://git.cairographics.org/git/py2cairo.

不幸的是,并非所有东西都可以通过pip或安装easy_install。如果其中任何一个失败,您必须阅读项目的 PyPI 页面、主页或文档。

在 的情况下pycairo,它不能easy_install/ pip installed 的原因是它是使用waf而不是构建的distutils(并且没有人distutils围绕waf构建编写包装器)。但你并不真正关心它为什么不起作用,只关心你必须做什么。

好吧,说明会告诉您必须做什么。您可能认为您不想从源代码构建,但这正是pip通常所做的(并且同样如此easy_install),因此不必害怕。

但所有这些都是主要问题的次要问题:pycairoPython 模块需要您没有的cairo库(同样如此)。pixman(实际上,根据您的 OS X 版本,您可能有一个无法外部链接的私有版本,或者一个非常旧的版本,对 pycairo 来说不够好,或者根本没有版本......但这三个中的任何一个都相当于就你而言。)

所以你必须在pycairo建造之前从某个地方得到它。(而且,即使您在其他地方制作了副本,也无法使用它。)

与文档的建议相反,我会使用Homebrew而不是 MacPorts 来安装cairo. MacPorts 旨在构建一种完全隔离的工具集——因此,如果您想安装cairoMacPorts 以便将 MacPorts 安装pycairo到您的 MacPorts/opt/local/bin/python中,那就太好了,但如果您希望pycairo为库存 Apple 构建它,那就不是很好了/usr/bin/python

于 2012-12-18T19:29:38.563 回答