Python 如何在osx上安装pycairo?
我正在尝试在OSX下安装(的Python绑定) 我从Python 如何在osx上安装pycairo?,python,macos,installation,makefile,cairo,Python,Macos,Installation,Makefile,Cairo,我正在尝试在OSX下安装(的Python绑定) 我从 easy_install pycairo 得到: 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 所以我去了cairo的网站,下载了cairo的最新软件包(1.8.8),以及pixman的最新软件包(两个源程序包都找不到osx二进制文
easy_install pycairo
得到:
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
所以我去了cairo的网站,下载了cairo的最新软件包(1.8.8),以及pixman的最新软件包(两个源程序包都找不到osx二进制文件)
都解压缩了,每个都在自己的目录中。
对于pixman,常规的/configure;制作sudo make安装
工作正常,只需查找
对于cairo,./configure似乎可以工作,但make失败,原因是:
In file included from cairo-analysis-surface.c:37:
cairoint.h:71:20: error: pixman.h: No such file or directory
我做错了什么
为什么我要费这么大的劲才能让一个软件库在一个“正常工作”的操作系统上运行呢?为什么达尔文不更像linux?好的。我解决了。将解决方案放在这里以供将来参考,可能会对某些人有所帮助 基本上,整个ports/fink系统有点混乱,而且osx在linux-y世界中的表现也不太好 因此,我需要在OSX上安装pycairo的步骤是:
- 下载pixman,cairo,pycairo的最新源代码版本
- 提取一切。然后:
希望能返回几个位置。选择最有可能的一个(最新的一个)。对我来说,它是“/opt/local/lib/pkgconfig/cairo.pc”,并执行以下操作: 在此之后,仍在PYCAIRO_DIR中,执行以下操作: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
python setup.py install
这应该可以做到…命令为darwinports python安装安装库,这与框架构建不同(因此步骤2和3不应该工作)。尝试
sudoeasy\u安装pycairo
(尽管步骤4应该与此等效)
查看
哪种python
,检查您是否正在运行您认为是的python。您似乎在混合各种安装选项。MacPorts package systemport install
命令应该自动拉入特定包所需的所有依赖项,因此技巧是从正确的顶级项目开始。对于python包,MacPorts目前有一个通用约定:以py-
开头的包适用于python 2.4,以py25-
开头的包适用于2.5,以py26-
开头的包适用于2.6。MacPorts中目前有py cairo
、py25 cairo
和py26 cairo
软件包
通过选择py cairo您选择了python2.4版本,您可能会发现MacPorts为您构建并安装了一个python2.4(链接在/opt/local/bin/python2.4
),如果您启动它,您可能会发现您可以在那里导入cairo。现在这对您的需求来说还可以,但是Python2.4已经很老了,不再受支持,因此,如果您刚刚开始,那么最好从Python2.6开始,Python2.6是当前两个Python版本之一。为此,您只需执行以下操作:
sudo port install py26-cairo
这将带来任何缺少的依赖项,主要是MacPorts python2.6,您可以从/opt/local/bin/python2.6
运行它。您可能需要更改shell启动脚本中的$PATH
,可能是.bash_profile,以便将/opt/local/bin
放在搜索路径的早期
因为安装Cairo及其python绑定似乎相当复杂,所以坚持使用完整的MacPorts解决方案应该更容易、更好。这意味着您已经不必要地(并且无害地)安装了两个您不需要的Python实例。但是,如果您确实想稍微清理一下,可以使用以下工具轻松删除MacPorts python24:
sudo port uninstall py-cairo python24
完全删除python.org安装的python更为复杂。我已经解释了这个过程。但是,只要保持路径笔直,就没有迫切需要删除这两个版本。在Mac OS上,您可以安装多个Python版本。如果您决定通过Fink或MacPorts安装Python,您可以获得更多。从源代码编译库时,应确保它们指向正确的安装 目前,我的机器上安装了Python 2.5.1和Python 2.6.4,我可以分别通过
python2.5
和Python
调用它们。它们位于两个不同的文件夹中:
/System/Library/Frameworks/Python.framework/Versions/2.5
和/Library/Frameworks/Python.framework/Versions/2.6
在从tarball编译pycairo1.8.8时,我遇到了类似的问题。本例中的安装
文件是您的朋友,因为它包含正确的说明以避免潜在的版本冲突。您基本上需要指定正确的前缀,以便将包安装到正确的文件夹中
$ python -c "import sys; print sys.prefix"
# make a note of the python prefix
$ ./configure --prefix=[python_prefix]
$ make
$ make install # may require superuser access
$python-c“导入系统;打印系统前缀”
#记下python前缀
$./configure--prefix=[python\u prefix]
$make
$make install#可能需要超级用户访问
使用
python2.5
和python
运行这些说明,您将能够为这两个版本(或通过MacPorts/Fink安装的任何版本)正确安装pycairo。如果您已经拥有自制软件,这两个命令将非常有用:
$ brew install cairo --use-clang
$ brew install py2cairo
对于非自制安装的Python,将PYTHONPATH设置为查找pycairo。您可以在.bashrc/.profile/中将PYTHONPATH设置为以下值:
PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH.
我个人不需要使用最后一部分,但它可能会对您有所帮助。第1步:从terminal
ruby-e“$(curl-fsSL)运行此部分https://raw.githubusercontent.com/Homebrew/install/master/install)“/dev/null
步骤2:brew安装cairo
步骤3:
pip安装pycairo
更新:我将所有.h文件从pixman目录复制到cairo目录。一个丑陋的蛮力的东西,但它似乎起作用:“制造;sudo-make-install似乎工作正常。不过,在尝试安装pycairo时,我仍然得到“Requested'cairo>=1.8.8”,但cairo的版本是1.0.4。它认为我有cairo1.0.4,而忽略了新的
PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH.