Tentei o IPython, mas não consegui acostumar com ele. É diferente demais do shell padrão.
Mas hoje, encontrei nos comentários deste artigo, a dica. Ao abrir o shell interativo, rode:
import readline
import rlcompleter
readline.parse_and_bind("tab: complete")
Pronto, isso te dá auto-completar no shell.