Comment 0 for bug 290228

Revision history for this message
Jie Tang (jietang86) wrote :

Windows XP SP2
Emacs 22.3
ipython 0.9.1
python-mode.el 4.75
ipython.el

these are the steps I needed to get ipython working under emacs

First, to get ipython.el to work you need to edit the ipython.bat file and add a -i flag: i.e.
@C:\Python26\python.exe -i C:\Python26\scripts\ipython.py %*

next, something is broken with the way readline's _outputfile interacts with ipython under emacs/winXP.
I can get IPython working in emacs by modifying line 122 in genutils.py:

if sys.platform == 'win32' and readline.have_readline and (not 'EM_PARENT_PROCESS_ID' in os.environ):

EM_PARENT_PROCESS is a variable inserted into the environment when running processes under emacs.
This tells ipython not to use readline's _outputfile when running under emacs on windows.
NOTE: readline._outputfile is required for proper color display when running ipython from the command shell.

Finally, tab complete is broken under python 2.6 and using my version of ipython.el (may be fixed in the latest version)
In ipython.el, change the value of ipython-completion-command-string to

(defvar ipython-completion-command-string
  "print(';'.join(__IP.Completer.all_completions('%s'))) #PYTHON-MODE SILENT\n"
  "The string send to ipython to query for all possible completions")

This uses 2.6 print() function conventions, and should be backwards compatible with python2.5.

Jie