6

我正在尝试使用 brew 在 python 2.7.3 的框架构建(Mac OSX Lion)上安装 py2cairo。到目前为止,我一直没有成功。

首先,我尝试了一个简单的

brew install py2cairo

这似乎只适用于 python 的非框架构建。当我在我的框架上执行此操作时,一旦我导入带有不兼容二进制错误的 cairo,就会生成 python 错误。

其次,我尝试通过从 github 获取并发布:

python waf configure

这失败了:

Checking for library python2.7           : not found 
Checking for library python2.7           : not found 
Checking for library python2.7           : not found 
Checking for library python27            : not found 
Checking for program python2.7-config    : /usr/local/Cellar/python/2.7.3/bin/python2.7-   config 
Checking for header Python.h             : Could not find the python development headers 
The configuration failed
(complete log in /Users/tobin/tmp/py2cairo/build_directory/config.log)

我已经尝试了所有方法:How to install PyCairo 1.10 on Mac OSX with default python,但这些都没有帮助。

在我看来,这可能无法找到 python2.7 库和头文件,因为它是一个框架构建。那可能吗?我正在查看 brew 公式,似乎框架构建在构建时没有设置 --enable-share 。我不确定这在这里是否相关——但也许是一种可能性。

任何其他见解都会很棒。提前致谢。

更新:

我发现无法构建 py2cairo 与 gcc 使用“-march=native”标志有关。Mac OSX 上的 gcc (4.2.1) 有这个问题。然后我重新安装了 gcc 和 python。之后,当使用 waf 构建 py2cairo 时,它得到了“-march=core2”并且一切都构建了。

不幸的是,并非一切都很好。当我从 brew 版本(如上所述)获得的构建中导入 cairo 时,我得到了同样的错误。确切的错误信息是:

>>> import cairo
Fatal Python error: Interpreter not initialized (version mismatch?)
Abort trap: 6

然后python退出。

现在看来,这个问题与 python 的框架构建有关。我在没有构建框架的情况下对其进行了测试,并且效果很好。

4

1 回答 1

1

为了不让这个问题悬而未决......我想跟进我的解决方案和学习点:

  1. 如上所述,我的 OSX 版本和一个名为 -march=native 的 gcc 编译标志不兼容。在以后的版本中,它以 -march=core2 的形式出现。在清理我的机器后,这几乎可以通过编译器/版本更改自行修复。

  2. 多年来,我的所有各种 MAC OSX 安装都一团糟——并且接受了“迁移选项”。两台机器前 - 我安装了 2.4 和 2.5 版本的 python 二进制文件,然后由于各种原因最终去了 macports。然后最终去了自制。当我去自制软件时,我尝试用手清理东西(但这当然可能具有挑战性)。更糟糕的是——在过去的 6 年中,每次我获得一台新的 mac(2 次)时,我都会选择“迁移安装”选项,这会推动混乱并使其变得更糟。因此,当我开始进一步研究时——我安装了各种不同版本的 python——mac-native、python-native、mac 端口、自制程序,甚至可能还有其他版本。

我终于通过手动删除一堆旧的 python 安装解决了这个问题,然后重新开始使用新的 virtualenv 和 python 2.7 的 homebrew 安装。

警告:我认为这不是最聪明的方法。我小心翼翼地没有删除我认为 OSX Lion 自带的 Python 版本(我认为它是 2.6)——但目前尚不清楚它可能如何影响可能依赖于较旧的 mac 安装的 python 的其他一些事情。我最终删除了一个 2.3、一个 2.4 和两个不同的 2.5 - 以及某些地方的各种链接。真是一团糟!除非您完全确定自己在做什么(我不是),否则我不会建议这种方法。我基本上是想杀死已经收集了 6 年的 python install crud。

为了安全起见,我可能应该从安装新的 OSX Lion 开始,然后添加我的自制版本并从那里开始。我可能会在不久的将来这样做。

于 2012-06-13T15:51:21.980 回答