我正在尝试使用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的框架构建有关。我在没有框架构建的情况下对其进行了测试,并且效果很好。
最佳答案
为了不让这个问题悬而未决……我想跟进我的解决方案和学习要点:
我终于解决了这一问题,方法是手动删除了一堆旧的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/