Veja como você deve fazer isso (IPython> v0.11):
import IPython
IPython.embed()
Para IPython <= v0.11:
from IPython.Shell import IPShellEmbed
ipshell = IPShellEmbed()
ipshell() # this call anywhere in your program will start IPython
Você deve usar IPython, o Cadillac de Python REPLs. Consulte http://ipython.org/ipython-doc/stable/interactive/reference.html#embedding-ipython
Da documentação:
Também pode ser útil em situações de computação científica onde é comum precisar fazer alguma parte automática, computacionalmente intensiva e, em seguida, parar para olhar os dados, gráficos, etc. Abrir uma instância IPython dará a você acesso total aos seus dados e funções, e você pode retomar a execução do programa assim que terminar a parte interativa (talvez para parar novamente mais tarde, quantas vezes forem necessárias).