为什么在OS X上找不到Python readline模块?

8 投票
4 回答
7782 浏览
提问于 2025-04-11 20:39

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的raw_input()函数提供readline的功能呢?

4 个回答

4

这个功能在OS X上没有提供,是因为有一些授权方面的问题(就是GPL带来的限制)。

如果你安装了readline这个包,使用Macports的Python应该没问题。

5

试试 rlwrap。它应该可以在任何版本的 Python 和一般的命令行中使用。

在 Mac OS X 上,可以通过 brew install rlwrap 来安装。

使用方法是 rlwrap python。它还会保存你的历史记录。

7

你有没有尝试安装一下 py-readline(或者对于 Python 2.5 来说是 py25-readline)这个软件包呢?

另外,在上面的代码片段中,你用的不是 MacPort 的 Python,而是苹果自带的 Python。

MacPort 版本的 Python 应该在 /opt/local 这个文件夹里。你可以检查一下你的路径设置。

撰写回答