我正在尝试在OSX下安装pycairo(cairo graphics library的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二进制文件)
解压缩两者,每个都在自己的目录中。
对于pixman来说,常规./configure ; make ; sudo make install
只是找到了
对于cairo,。/ configure似乎有效,但是失败了:
In file included from cairo-analysis-surface.c:37:
cairoint.h:71:20: error: pixman.h: No such file or directory
我做错了什么?
为什么我必须努力让软件库在“正常工作”的操作系统上工作?为什么darwin不像linux?
答案 0 :(得分:10)
我发现this指令非常有用,而且不那么令人困惑。我在优胜美地,对我来说效果很好。该指令使用自制软件进行安装。因此,如果您已经拥有自制程序,这两个命令应该会有所帮助:
$ brew install cairo --use-clang
$ brew install py2cairo
对于非Homebrew安装的Python,此指令建议将PYTHONPATH设置为查找pycairo。你可以在你的.bashrc / .profile / .w中设置你的PYTHONPATH:
PYTHONPATH=/usr/local/lib/python2.7/site-packages:$PYTHONPATH.
我个人不需要使用指令的最后一部分,但它可能对你有所帮助。
答案 1 :(得分:7)
您似乎在混合各种安装选项。 MacPorts包系统port 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。既然可能可以满足您的需求,但Python 2.4已经很老了,不再支持了,所以,如果您刚刚开始,最好从Python 2.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更复杂。我已解释过程here。但是,只要你保持路径直线,就没有迫切的需要去除。
答案 2 :(得分:6)
确定。我解决了将解决方案放在这里供将来参考,它可能对某人有帮助。
基本上,整个ports / fink系统有点搞砸了,osx并没有真正适应linux-y世界。
因此,我需要在OSX上安装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
希望返回几个地点。选择最可能的一个(一个最新的开罗)。对我来说,这是“/opt/local/lib/pkgconfig/cairo.pc”,并做:
export PKG_CONFIG_PATH=/opt/local/lib/pkgconfig/
之后,仍然在PYCAIRO_DIR中,执行:
python setup.py install
应该这样做......
答案 3 :(得分:3)
port
命令为darwinports python安装安装库,这与框架构建不同(因此步骤2和3不起作用)。请尝试使用sudo easy_install pycairo
(尽管您的第4步应与此相同)。
同时查看which python
,检查您是否正在运行您认为自己的python。
答案 4 :(得分:2)
在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编译pycairo 1.8.8时遇到了类似的问题。在这种情况下,INSTALL
文件是您的朋友,因为它包含正确的说明以避免潜在的版本冲突。您基本上需要指定正确的前缀,以便将软件包安装在正确的文件夹中。
$ 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
使用python2.5
和python
运行这些说明,您将能够为两个版本(或通过MacPorts / Fink安装的任何版本)正确安装pycairo。
答案 5 :(得分:1)
步骤1:从终端ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" < /dev/null 2> /dev/null
第2步: brew install cairo
第3步: pip install pycairo