如何使用easy_install为苹果版的Python2.7安装pycairo

如何使用easy_install为苹果版的Python2.7安装pycairo,python,macos,cairo,easy-install,pycairo,Python,Macos,Cairo,Easy Install,Pycairo,我想在MacOSXLion上安装Cairo的Python绑定,这样我就可以将它们用于苹果版的Python2.7。我倾向于使用easy\u install安装Python模块等,但在这种情况下似乎不起作用: $ sudo easy_install pycairo Searching for pycairo Reading http://pypi.python.org/simple/pycairo/ Reading http://cairographics.org/pycairo Best matc

我想在MacOSXLion上安装Cairo的Python绑定,这样我就可以将它们用于苹果版的Python2.7。我倾向于使用
easy\u 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
在堆栈溢出的其他地方也有类似的问题,但答案并不能解释我在这里做错了什么

这个问题与Python 2.6有关,公认的答案是使用Macports而不是
easy\u install
,另一个答案似乎是建议使用我在上面尝试过的方法(失败):

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


首先,您几乎总是希望尽可能使用
pip
而不是
easy\u install
。而“只要有可能”几乎意味着“除了
pip
本身之外的一切,
readline
”苹果并不预先安装
pip
,但你可以只
sudo-easy\u-install-pip
,然后到处
sudo-easy\u-install-foo
而不是
sudo-pip-install-foo

其次,
pycairo
需要Python 3.1+。您需要python2.6-2.7的版本
py2cairo
。因为没有PyPI包,所以您必须下载它或手动进行git克隆。但幸运的是,
pip
会自动为您执行此操作:
sudopip安装http://cairographics.org/releases/py2cairo-1.10.0.tar.bz2
sudo-pip-install-git+https://git.cairographics.org/git/py2cairo

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

pycairo
的情况下,它不容易安装的原因是它是使用
waf
而不是
distutils
构建的(没有人在
waf
构建中编写
distutils
包装器)。但你并不真的在乎它为什么不起作用,只在乎你必须做什么

好吧,说明书告诉你该怎么做。您可能认为您不想从源代码构建,但这正是
pip
通常所做的(同样地
easy\u install
),因此不必担心

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

因此,在构建
pycairo
之前,您必须从某处获取它。(而且,即使您在其他地方制作了副本,您也无法使用它。)


与文档建议的相反,我宁愿使用MacPorts而不是MacPorts来安装
cairo
。MacPorts旨在构建一组完全隔离的工具,因此,如果您想安装
cairo
,就可以将MacPorts
pycairo
安装到您的MacPorts
/opt/local/bin/python
,但是,如果你希望为苹果的股票
/usr/bin/python

构建
pycairo
,那就不太好了。首先,你几乎总是希望尽可能使用
pip
而不是
easy\u install
。而“只要有可能”几乎意味着“除了
pip
本身之外的一切,
readline
”苹果并不预先安装
pip
,但你可以只
sudo-easy\u-install-pip
,然后到处
sudo-easy\u-install-foo
而不是
sudo-pip-install-foo

其次,
pycairo
需要Python 3.1+。您需要python2.6-2.7的版本
py2cairo
。因为没有PyPI包,所以您必须下载它或手动进行git克隆。但幸运的是,
pip
会自动为您执行此操作:
sudopip安装http://cairographics.org/releases/py2cairo-1.10.0.tar.bz2
sudo-pip-install-git+https://git.cairographics.org/git/py2cairo

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

pycairo
的情况下,它不容易安装的原因是它是使用
waf
而不是
distutils
构建的(没有人在
waf
构建中编写
distutils
包装器)。但你并不真的在乎它为什么不起作用,只在乎你必须做什么

好吧,说明书告诉你该怎么做。您可能认为您不想从源代码构建,但这正是
pip
通常所做的(同样地
easy\u install
),因此不必担心

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

因此,在构建
pycairo
之前,您必须从某处获取它。(而且,即使您在其他地方制作了副本,您也无法使用它。)

与文档建议的相反,我宁愿使用MacPorts而不是MacPorts来安装
cairo
。MacPorts是设计公司