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 <[EMAIL PROTECTED]> 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.
[EMAIL PROTECTED]
_______________________________________________
Pythonmac-SIG maillist - Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig