如何使用自制软件安装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
。py2cairowaf
安装程序在安装时似乎选择了错误的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