libedit / readline与OS X 10.7 Lion上的ipython 3.2.2冲突

时间:2011-11-27 20:31:17

标签: python python-3.x readline ipython easy-install

我一直在尝试在运行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。

2 个答案:

答案 0 :(得分:6)

这是不幸的,因为越来越多的OS X上的Python发行版是在Apple X中使用Apple提供的libedit而不是Apple未发布的GPL许可的GNU readline库构建的。例如,OS X的当前64位/ 32位python.org安装程序使用libedit,而仅限32位的安装程序当前使用readline,因为libedit在旧版本上有错误虽然Python 3.2的32位安装程序可以安装在10.7上,但如果你需要安装任何C扩展模块,那么在10.7上就会出现问题,因为Python是用旧的10.4u SDK和ppc archs构建的10.7不支持。理想情况下,应修改iPython以使用libeditreadline正常工作。如果有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端口。

答案 1 :(得分:0)

你有一个名为easy_install-3.2的命令吗?

看看readline on PyPI,看起来没有为Python 3构建的二进制文件,所以你可能需要从源代码编译它的相关内容(除非你可以在其他地方找到Python 3版本)