为什么OS X上没有Python readline模块?

时间:2008-11-29 06:18:49

标签: python macos readline

Python readline模块的文档说“可用性:Unix”。但是,它似乎在OS X上不可用,尽管可以使用标记为Unix的其他模块。这是我正在使用的:

$ uname -a
Darwin greg.local 8.11.1 Darwin Kernel Version 8.11.1: Wed Oct 10 18:23:28 PDT 2007; root:xnu-792.25.20~1/RELEASE_I386 i386 i386
$ which python
/usr/bin/python
$ python
Python 2.3.5 (#1, Nov 26 2007, 09:16:55) 
[GCC 4.0.1 (Apple Computer, Inc. build 5363) (+4864187)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import readline
Traceback (most recent call last):
  File "", line 1, in ?
ImportError: No module named readline
>>> 

我还通过MacPorts安装了Python 2.5,但readline也没有。

如何在OS X上为Python的readline函数提供raw_input()功能?

4 个答案:

答案 0 :(得分:7)

您是否尝试过安装py-readline(或py25-readline for Python 2.5)端口?

此外,在上面的代码片段中,您没有使用MacPort python,而是使用Apple Python。

MacPort版本应位于/opt/local目录结构中。你应该检查你的路径。

答案 1 :(得分:4)

试试rlwrap。它应该适用于任何版本的python,并且通常适用于任何shell。

在Mac OS X上通过brew install rlwrap安装

用作rlwrap python。它也存储历史。

答案 2 :(得分:3)

由于许可问题(GPL为您带来的限制),因此OS X中未附带此内容。

如果安装了readline软件包,Macports python应该没问题。

答案 3 :(得分:3)

您应该能够在Mac的原生Python上获得readline支持。显然它是通过BSD的编辑线实现的,你必须以稍微不同的方式启动它。我刚刚在Mac上测试了它,它工作正常(OS X 10.5.7)。有关详细信息,请参阅man python,“交互式输入编辑和历史记录替换”部分 - mirrored on the web here

luga ~ $ python 
Python 2.5.1 (r251:54863, Feb  6 2009, 19:02:12) 
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import rlcompleter
>>> import readline
>>>