Allow "manage.py shell" to use IPython if present
|Reported by:||Owned by:||Adrian Holovaty|
|Has patch:||no||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
I cribbed the following from TurboGears. Their tg-admin.py shell command tried to import IPython and falls back to code.interact() if IPython isn't present. I prefer IPython for several reasons. I know I can run it manually if I want to, but it isn't available via a nice, easy command!
A modification like the following to "run_shell" in django.core.management seems to work (not my original work - I grabbed it from TG):
def run_shell(): "Runs a Python interactive interpreter. Tries to run IPython if it exists" try: import IPython shell = IPython.Shell.IPShell() shell.mainloop() except ImportError: import code code.interact()