这是我到目前为止所做的:
我已经安装了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
我认为大多数人会使用pip
或easy_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的蟒蛇,因为它似乎并不是第一个在路径上......
答案 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错误:解释器未初始化(版本不匹配?)”。以下是解决问题的方法。
brew tap homebrew/dupes && brew install homebrew/dupes/apple-gcc42
sudo ln -s /usr/local/bin/gcc-4.2 /usr/bin/gcc-4.2
brew --config
确认所有内容(应报告位于GCC-4.2)brew uninstall cairo py2cairo
brew install py2cairo --use-gcc
我有同样的问题,直到用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 py2cairo
和brew install py2cairo
也对我有用
代替
brew rm -f py2cairo
尝试
brew install https://raw.githubusercontent.com/2bits/homebrew/15b3e67/Library/Formula/py2cairo.rb