为什么在OS X上找不到Python 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的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
这个文件夹里。你可以检查一下你的路径设置。