我正在尝试使用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”,并且一切都构建了。

不幸的是,并不是所有的事情都很好。当我从我的构建中导入cairo时,与从brew版本中获得的错误相同(如上所述)。确切的错误消息是:
>>> import cairo
Fatal Python error: Interpreter not initialized (version mismatch?)
Abort trap: 6

然后python退出。

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

最佳答案

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

  • 如上所述,与我的OSX版本不兼容,还有一个名为-march = native的gcc编译标志。在更高版本中,它以-march = core2出现。在清理我的机器后,这几乎可以通过编译器/版本更改来解决。
  • 多年来,我对所有各种MAC OSX安装都一无所知-并接受“迁移选项”。两台机器之前-我安装了版本2.4和2.5的python二进制文件,然后由于各种原因最终进入了Macports。然后最终去 Homebrew 。当我去自家酿制时,我试图用手清理东西(但是,这当然是有挑战性的)。更糟的是,在过去的6年中,每当我购买一台新的Mac(2次)时,我都会选择“migration install”选项,这将使情况更加困惑。因此,当我开始进一步研究时-我安装了各种版本的python,安装了不同的版本-mac-native,python-native,mac端口, Homebrew 软件,甚至我的系统上也可能安装了其他版本。因此,我最好的猜测是,开罗以某种方式找到了其中之一,并试图与之抗衡。

  • 我终于解决了这一问题,方法是手动删除了一堆旧的python安装程序,然后从python 2.7的全新virtualenv和homebrew安装开始。

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

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

    关于python - 无法在Mac OSX上安装py2cairo,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10965692/

    10-12 21:37
    查看更多