From man python on OS X 10.5 (and probably before):
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")
Well, that explains why Python doesn’t play nice with my readline stuff.






Good post.