[Pythonmac-SIG] readline support for OS X Leopard

Edward Moy emoy at apple.com
Mon Oct 22 21:02:17 CEST 2007


We did fix a few bugs related to IPython and Leopard's python, so to  
some degree, it does work (sorry, I don't use IPython myself).  There  
was a problem with IPython explicitly loading ~/.inputrc when readline  
support is available, which will fail due to the command syntax  
problem.  Just guessing, but converting the .inputrc to EditLine  
syntax *should* probably fix that problem.

Ed

On Oct 22, 2007, at 11:35 AM, Noah Gift wrote:

> Edward,
>
> Thanks for the information.  Do you know of a way to get IPython to  
> use edline instead?  IPython is growing in popularity for Python  
> programmers, and it seems like getting a way forward that works with  
> edline makes sense, or maybe I am wrong and people will need to just  
> manually install readline themselves.
>
> Noah
>
> On 10/22/07, Edward Moy <emoy at apple.com> wrote:
> On Oct 21, 2007, at 10:51 PM, Noah Gift wrote:
>
>> I have been getting ready for the official leopard release in a few  
>> days, and have been a bit worried about readline support.  I forgot  
>> what I did to get it to work for IPython, which I absolutely cannot  
>> live without anymore.  Is there a plan for a Leopard binary that  
>> fixes readline, or can I help someone prepare some documentation on  
>> getting readline working properly.  I don't have a lot of time  
>> during the next couple of weeks to get into compile hell, but if  
>> someone has any easy fix to get readline to work, I would greatly  
>> appreciate it.
>
>
> The installed version of python on Leopard will actually have  
> readline support turned on by default, but it uses the EditLine  
> (libedit) library, not the GNU Readline (due to licensing reasons).   
> While functionally equivalent, the command syntax is different.   
> From the python(1) man page:
>
>
> INTERACTIVE INPUT EDITING AND HISTORY SUBSTITUTION
>        The Python inteterpreter supports editing of the current  
> input line and
>        history substitution, similar to facilities found in the Korn  
> shell and
>        the  GNU  Bash shell.  However, rather than being implemented  
> using the
>        GNU Readline library, this Python interpreter  uses  the   
> BSD  EditLine
>        library editline(3) with a GNU Readline emulation layer.
>
>
>        The  readline  module  provides the access to the EditLine  
> library, but
>        there are a few major differences compared to a traditional  
> implementa-
>        tion  using  the  Readline  library.   The command language  
> used in the
>        preference files is that of EditLine, as described in  
> editrc(5) and not
>        that   used  by  the  Readline  library.   This  also  means   
> that  the
>        parse_and_bind() routines uses EditLine commands.  And  the   
> preference
>        file itself is ~/.editrc instead of ~/.inputrc.
>
>
>        For  example,  the rlcompleter module, which defines a  
> completion func-
>        tion for the  readline  modules,  works  correctly  with   
> the  EditLine
>        libraries, but needs to be initialized somewhat differently:
>
>
>               import rlcompleter
>               import readline
>               readline.parse_and_bind ("bind ^I rl_complete")
>
>
>        For vi mode, one needs:
>
>
>               readline.parse_and_bind("bind -v")
>
>
> --------------------------------------------------------------------------
> Edward Moy
> Apple Computer, Inc.
> emoy at apple.com
>
>
>
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/pythonmac-sig/attachments/20071022/7a7183bb/attachment.htm 


More information about the Pythonmac-SIG mailing list