2008-11-29 74 views
4

Python readline模块的文档说“可用性:Unix”。但是,尽管其他标记为Unix的模块可用,但OS X似乎不可用。下面是我使用的是什么:为什么Python readline模块在OS X上不可用?

 
$ 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功能?

回答

7

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

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

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

+1

正如我所说的,我也通过MacPorts安装了Python 2.5,并且readline在那里不可用。但安装py25-readline工作,谢谢! – 2008-11-29 07:34:54

+1

如果您使用的是MacPorts Python,您可能还想安装'python_select'包来设置默认的Python解释器。 – Cyberdrow 2009-07-12 10:38:31

3

由于授权问题(GPL给您带来的限制),它未在OS X中发货。

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

3

您应该可以在Mac的本机Python上获得readline支持。显然它是通过BSD的editline实现的,你必须以不同的方式启动它。我刚刚在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 
>>> 
+1

如果您想自动执行此操作,请将导入行放入一个名为(例如).pythonrc的文件中,并将其放入您的主目录中。添加一行“export PYTHONSTARTUP = $ HOME/.pythonrc”到你的.bashrc和voila。对于vi键绑定,请在您的主目录中创建.editrc,并添加“bind -v”行。 – 2014-04-16 12:46:06

3

尝试rlwrap。它应该可以与任何版本的python以及任何shell一起工作。

在Mac OS X通过brew install rlwrap安装

使用为rlwrap python。它也存储历史。

相关问题