9

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

我已经安装了 Homebrew:

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

然后是蟒蛇: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

我认为大多数人都使用piporeasy_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 的 python 构建,因为它似乎不是第一个在路径上......

4

4 回答 4

6

我偶然发现了同样的错误。通过一些谷歌搜索,我发现这个问题已经在 GitHub 上项目的问题页面上检测到了。

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

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

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

当修复被批准时,一个简单的brew update应该解决问题。

于 2012-07-02T00:43:06.397 回答
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

我有同样的问题,直到我用 gcc 构建它,这显然不再包含在 xcode 4.3 中。

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

于 2012-05-06T18:46:39.410 回答
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)。

于 2012-05-06T17:02:33.937 回答
0

对我来说也brew rm -f py2cairobrew install py2cairo工作

代替

brew rm -f py2cairo

尝试

brew install  https://raw.githubusercontent.com/2bits/homebrew/15b3e67/Library/Formula/py2cairo.rb
于 2018-07-08T09:38:04.960 回答