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.
[EMAIL PROTECTED]

_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig

Reply via email to