如何使用Homebrew安装Py2Cairo等Python库

时间:2012-05-06 16:35:18

标签: python homebrew cairo

这是我到目前为止所做的:

我已经安装了Homebrew:

/usr/bin/ruby -e "$(/usr/bin/curl -fsSL https://raw.github.com/mxcl/homebrew/master/Library/Contributions/install_homebrew.rb)"

然后是python:brew install python

然后是py2cairo:brew install py2cairo

这两个似乎都正确安装,当我输入which python时,我得到:usr/local/bin/python我相信它是自制软件的版本。

我已经编辑了我的路径,正如许多Homebrew指南所建议的那样:

export PATH=/usr/local/bin:/usr/local/share/python:$PATH

以下是我从echo $PATH获得的内容:/usr/local/bin:/usr/local/share/python:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin

我也可以输入python --version并获取python 2.7.3这似乎是正确的,因为如果我查看/usr/local/Cellar/py2cairo/1.10.0/README它会说:

Dependencies
------------
    cairo   >= 1.10.0
    Python  >= 2.6 

然而,毕竟这仍然无法将py2cairo库导入python。这是我尝试时得到的结果:

Sal:~ Lockyer$ python
Python 2.7.3 (default, May  6 2012, 13:47:31) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.9.00)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import cairo
Fatal Python error: Interpreter not initialized (version mismatch?)
Abort trap: 6

我认为大多数人会使用pipeasy_install来做这类事情,但我不认为py2cairo会受到支持。这是我运行pip-2.7 install py2cairo时得到的结果:

Downloading/unpacking py2cairo
  Could not find any downloads that satisfy the requirement py2cairo
No distributions at all found for py2cairo
Storing complete log in /Users/Lockyer/Library/Logs/pip.log

我想我必须错过最后一步,我会以某种方式向python显示从哪里导入库...我忘记在我的路径中添加一些内容了吗?

这是我运行ls -l /usr/local/bin/python

时得到的结果
lrwxr-xr-x  1 Lockyer  admin  33  6 May 13:48 /usr/local/bin/python -> ../Cellar/python/2.7.3/bin/python

这是我运行otool -L /usr/local/Cellar/py2cairo/1.10.0/lib/python2.7/site-packages/cairo/_cairo.so时得到的结果:

/usr/local/Cellar/py2cairo/1.10.0/lib/python2.7/site-packages/cairo/_cairo.so:
    /private/tmp/homebrew-py2cairo-1.10.0-BtmY/py2cairo-1.10.0/build_directory/src/_cairo.so (compatibility version 0.0.0, current version 0.0.0)
    /usr/local/Cellar/cairo/1.10.2/lib/libcairo.2.dylib (compatibility version 11003.0.0, current version 11003.2.0)
    /System/Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.1)
    /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1094.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 159.1.0)

/System/Library/Frameworks/Python.framework/Versions移至我的桌面,再次运行brew install py2cairo似乎修复了错误。很高兴知道为什么它正在建立对抗Lion的蟒蛇,因为它似乎并不是第一个在路径上......

4 个答案:

答案 0 :(得分:6)

我偶然发现了同样的错误。通过一些谷歌搜索,我发现this issue的问题页面上已检测到project on GitHub

这似乎是waf处理库导入的问题,我完全不了解。修复程序已提交并正在等待批准。

如果有人在接受修复之前仍然遇到此问题,则可以按照this answer上提出的命令安装py2cairo的固定公式。

brew rm -f py2cairo
brew install  https://raw.githubusercontent.com/2bits/homebrew/15b3e67/Library/Formula/py2cairo.rb

批准修复后,一个简单的brew update应该可以解决问题。

答案 1 :(得分:4)

根据您的其他评论,您已设法解决库路径问题,但您仍然遇到“致命的Python错误:解释器未初始化(版本不匹配?)”。以下是解决问题的方法。

  1. 确保您拥有xcode 4.3
  2. 确保已安装xcode命令行工具
  3. brew tap homebrew/dupes && brew install homebrew/dupes/apple-gcc42
  4. sudo ln -s /usr/local/bin/gcc-4.2 /usr/bin/gcc-4.2
  5. 使用brew --config确认所有内容(应报告位于GCC-4.2)
  6. brew uninstall cairo py2cairo
  7. brew install py2cairo --use-gcc
  8. 我有同样的问题,直到用gcc构建它,显然不再包含在xcode 4.3中了。

    另外,我没有使用自制的python安装(如果你那样做)。我正在使用标准的apple python安装,并且在我的PYTHONPATH前面只有/usr/local/lib/python2.7/site-packages

答案 2 :(得分:3)

似乎pycairo的waf安装程序文件在安装时发现了错误的python。你能跑吗

otool -L /usr/local/Cellar/py2cairo/1.10.0/lib/python2.7/site-packages/cairo/_cairo.so

确定C扩展链接到哪个python?我的包括像

这样的行
/System/Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.1)

(但我使用的是系统python,而不是Homebrew python)。

答案 3 :(得分:0)

brew rm -f py2cairobrew install py2cairo也对我有用

代替

brew rm -f py2cairo

尝试

brew install  https://raw.githubusercontent.com/2bits/homebrew/15b3e67/Library/Formula/py2cairo.rb