Activity log for bug #254023

Date Who What changed Old value New value Message
2008-08-01 17:33:18 Sean Jensen-Grey bug added bug
2008-09-25 16:04:16 Sean Jensen-Grey description With a default source install of IPython 0.8.4, typing code into the ipython shell is a little frustrating since I cannot use the tab key to indent code. Even with the -noreadline option used when starting ipython, the tab key will not emit a tab or spaces in the ipython shell. I understand that readline support on OS X 10.5 is provided by libedit which does not have the same functionality as gnureadline. And that by installing gnu readline I get the behavior I want. And that there is an install guide @ http://ipython.scipy.org/moin/InstallationOSXLeopard It would seem to me that the usability of ipython on the mac under leopard is pretty flawed due to poor readline implementation (out of the box). At least with how IPython interacts with it. A couple possibilities to remedy this would be: 1. Rather than say that libedit was detected, say something along the lines of (only on darwin and if libedit was detected ...) """ The libedit replacement for gnu readline was detected on your mac. IPython needs gnu readline to function optimally. Using the tab key to indent code will not work without it. Please install pyreadline for osx. Or modify the ipython script itself. see, http://pypi.python.org/pypi/readline/2.5.1 """ 2. Ship the pyreadline.egg with the tar.gz of the source, during setup if they are using darwin, include the egg and modify the ipython start script. My new start script looks like import sys sys.path.insert( 0, '/Users/sean/python/readline-2.5.1-py2.5-macosx-10.5-fat.egg') import IPython.Shell IPython.Shell.start().mainloop() And it works great. I just had to download the egg from pypi and add it to my sys.path, INFRONT of everything else.pur Adding in pyreadline support on the mac would only take 360k of extra space, it would save an extra configuration step. The setup command purveyed on blogs and on the OSX install page failed with a gcc error on my machine (new leopard 10.5.2 install with latest xcode tools). I think shipping a binary egg that only ipython used would be best solution. Re-edited 9/25/2008, Short: The bug contains a description and a solution for getting readline to work reliably on the mac. The solution outlined recommends shipping the egg for readline with ipython and installing it in site-packages. Optionally modifying the ipython.py script to contain a reference to the egg. See below. ---- With a default source install of IPython 0.8.4, typing code into the ipython shell is a little frustrating since I cannot use the tab key to indent code. Even with the -noreadline option used when starting ipython, the tab key will not emit a tab or spaces in the ipython shell. I understand that readline support on OS X 10.5 is provided by libedit which does not have the same functionality as gnureadline. And that by installing gnu readline I get the behavior I want. And that there is an install guide @ http://ipython.scipy.org/moin/InstallationOSXLeopard It would seem to me that the usability of ipython on the mac under leopard is pretty flawed due to poor readline implementation (out of the box). At least with how IPython interacts with it. A couple possibilities to remedy this would be: 1. Rather than say that libedit was detected, say something along the lines of (only on darwin and if libedit was detected ...) """ The libedit replacement for gnu readline was detected on your mac. IPython needs gnu readline to function optimally. Using the tab key to indent code will not work without it. Please install pyreadline for osx. Or modify the ipython script itself. see, http://pypi.python.org/pypi/readline/2.5.1 """ 2. Ship the pyreadline.egg with the tar.gz of the source, during setup if they are using darwin, include the egg and modify the ipython start script. My new start script looks like import sys sys.path.insert( 0, '/Users/sean/python/readline-2.5.1-py2.5-macosx-10.5-fat.egg') import IPython.Shell IPython.Shell.start().mainloop() And it works great. I just had to download the egg from pypi and add it to my sys.path, INFRONT of everything else.pur Adding in pyreadline support on the mac would only take 360k of extra space, it would save an extra configuration step. The setup command purveyed on blogs and on the OSX install page failed with a gcc error on my machine (new leopard 10.5.2 install with latest xcode tools). I think shipping a binary egg that only ipython used would be best solution.
2009-04-14 21:00:17 Brian Granger ipython: importance Undecided Medium
2009-04-14 21:00:17 Brian Granger ipython: status New Confirmed
2009-04-14 21:00:17 Brian Granger ipython: assignee ellisonbg
2009-04-14 21:00:45 Brian Granger summary cannot use tab to indent code on osx Robust way of getting readline support on OS X builtin Python
2009-04-14 21:01:03 Brian Granger summary Robust way of getting readline support on OS X builtin Python Robust readline support on OS X's builtin Python
2011-08-17 01:12:29 Dan Lipsitt bug added subscriber Dan Lipsitt