如何使用自制软件安装Py2Cairo之类的Python库

如何使用自制软件安装Py2Cairo之类的Python库,python,homebrew,cairo,Python,Homebrew,Cairo,以下是我迄今为止所做的工作: 我安装了自制软件: /usr/bin/ruby -e "$(/usr/bin/curl -fsSL https://raw.github.com/mxcl/homebrew/master/Library/Contributions/install_homebrew.rb)" 然后是python:brew安装python lrwxr-xr-x 1 Lockyer admin 33 6 May 13:48 /usr/local/bin/python ->

以下是我迄今为止所做的工作:

我安装了自制软件:

/usr/bin/ruby -e "$(/usr/bin/curl -fsSL https://raw.github.com/mxcl/homebrew/master/Library/Contributions/install_homebrew.rb)"
然后是python:
brew安装python

lrwxr-xr-x  1 Lockyer  admin  33  6 May 13:48 /usr/local/bin/python -> ../Cellar/python/2.7.3/bin/python
然后py2cairo:
brew安装py2cairo

这两者似乎都安装正确,当我键入
我得到的python
时:
usr/local/bin/python
,我相信这是自制版本

我已经按照许多自制指南的建议编辑了我的路径:

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
并获取
python2.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\u install
来实现这类功能,但我认为py2cairo不受这些功能的支持。以下是我运行
pip-2.7安装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/cillar/py2cairo/1.10.0/lib/python2.7/site packages/cairo/_cairo时得到的信息。所以

/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构建的,因为它似乎并不是第一个在这条道路上…

Pycaor的
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,而不是自制python)。

根据您的其他评论,您已经设法解决了库路径问题,但留下了“致命python错误:解释器未初始化(版本不匹配?)”。下面是解决方法

  • 确保您有xcode 4.3
  • 确保已安装xcode命令行工具
  • brew点击自制/复制和&brew安装自制/复制/apple-gcc42
  • sudo ln-s/usr/local/bin/gcc-4.2/usr/bin/gcc-4.2
  • 使用
    brew--config
    确认所有这些(应报告GCC-4.2)
  • brew卸载cairo py2cairo
  • brew安装py2cairo——使用gcc
  • 我也有同样的问题,直到我用gcc构建它,它显然不再包含在xcode 4.3中


    此外,我没有使用自制python安装(如果您这样做的话)。我使用的是标准的apple python安装,在我的PYTHONPATH前面有
    /usr/local/lib/python2.7/site包
    ,我偶然发现了同样的错误。通过谷歌搜索,我发现已经在问题页面上检测到了

    这似乎是
    waf
    如何处理库导入的问题,我没有完全理解。修复程序已提交,正在等待批准

    如果有人在接受修复之前仍遇到此问题,则可以按照上建议的命令安装py2cairo的修复公式


    当修复获得批准后,一个简单的
    brew更新
    应该可以解决问题。

    对于我来说
    brew rm-f py2cairo
    brew安装py2cairo
    也起到了作用

    而不是

    brew rm -f py2cairo
    
    试一试


    如果您安装了以前的python,它可能仍然是那个。发布ls-l/usr/local/bin/python的结果我用我的结果编辑了这个问题,看起来像你对我的期望?但我可能错过了什么…是的,看起来不错。我认为@Dougal可能是你的问题所在,这意味着开罗本身可能没有正确地建设。您缺少基本的C语言,我认为您应该提供问题的最后一段作为正确答案,而不是下面的一段。我已经尝试了这个线程的一切,唯一有效的是你的变通方法。关于这个话题也有一些争论,很抱歉我以前试过,但失败了。我在写这个问题的时候把它搞砸了。只是再试一次,用结果编辑我的问题。啊哈,不同的问题。尝试在
    /usr/local/ceral/python/2.7.3/lib/python2.7/site packages/cairo/
    /usr/local/ceral/py2cairo
    中查找名为
    \u cairo.so
    的文件,这是py2cairo使用的C扩展名。找到它可能是一个路径问题,或者它可能没有正确构建。cairo有一个
    .so
    位于:
    /usr/local/ceral/py2cairo/1.10.0/lib/python2.6/site packages/cairo
    ,但是除了:
    \uuuu init\uuuu.pyc
    在:
    /usr/local/ceral/python/2.7.3/lib/python2.7/site packages/cairo
    Hmm——不知道为什么它在
    lib/python2.6
    中;当我刚做的时候,我得到了
    lib/python2.7
    。py2cairo
    waf
    安装程序在安装时似乎选择了错误的python版本。一个简单的解决方法可能是(现在您通过自制拥有了依赖项
    cairo
    ),只需使用pip-2.7安装py2cairo。。。。您也可以尝试
    brew卸载py2cairo;brew安装py2cairo
    并查看是否再次发生这种情况——如果您之前安装了它,可能是环境发生了变化,如果您刚刚安装了brew/python。好的,只需运行
    brew卸载py2cairo
    brew安装py2cairo
    。现在有一个
    \u cairo.so
    文件位于
    /usr/local/ceral/python/2.7.3/lib/p
    
    brew install  https://raw.githubusercontent.com/2bits/homebrew/15b3e67/Library/Formula/py2cairo.rb