我一直在尝试在运行Lion的mac上设置ipython 3(运行2.7正常),但似乎无法摆脱以下错误:
192:~ mlauria$/Library/Frameworks/Python.framework/Versions/3.2/bin/ipython3
/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages\
/IPython/utils/rlineimpl.py:96: RuntimeWarning: Leopard libedit detected - \
readline will not be well behaved including some crashes on tab completion, and \
incorrect history navigation. It is highly recommended that you install readline,\
which is easy_installable with: 'easy_install readline'
RuntimeWarning)
Python 3.2.2 (v3.2.2:137e45f15c0b, Sep 3 2011, 17:28:59)
easy_install readline在ipython 2.7上正确地解决了这个问题,但是这并没有修复3.2.
解决方法:
这是不幸的,因为越来越多的OS X上的Python发行版是在Apple X中使用Apple提供的libedit构建的,而不是Apple未提供的GPL许可的GNU readline库.例如,当前用于OS X的64位/ 32位python.org安装程序使用libedit,而仅32位安装程序当前使用readline,因为libedit在旧版本的OS X上存在错误.而32位仅安装程序对于Python 3.2可以安装在10.7上,如果你需要安装任何C扩展模块,那么它在10.7上是有问题的,因为Python是使用10.7不支持的旧版10.4u SDK和ppc arch构建的.理想情况下,应修改iPython以使用libedit或readline正常工作.如果有Python错误抑制,那么应该提交针对Python本身的错误.此外,也许可以说服PyPI上的readline包的维护者构建并放置3.2二进制包.
否则,您可以使用其源代码分发自行构建它,假设您已为Lion安装了Xcode.如果Python 3.2 bin框架不在您的路径中,您需要执行以下操作:
$export PATH=/Library/Frameworks/Python.framework/Versions/3.2/bin:$PATH
然后,如果您尚未安装Distribute for Python 3.2:
$curl -O http://python-distribute.org/distribute_setup.py
$python3.2 distribute_setup.py
然后从PyPI下载,构建和安装readline包:
$easy_install-3.2 readline
或者你可以从像MacPorts这样的第三方分销商安装Python 3.2版本,它提供了一个readline端口(py32-readline)和一个iPython端口.