caer en el intérprete de Python mientras se ejecuta la función

Tengo un módulo de Python con una función:

def do_stuff(param1 = 'a'): if type(param1) == int: # enter python interpreter here do_something() else: do_something_else() 

¿hay una manera de caer en el intérprete de línea de comandos donde tengo el comentario? de modo que si ejecuto lo siguiente en python:

 >>> import my_module >>> do_stuff(1) 

¿Obtengo mi siguiente mensaje en el ámbito y el contexto donde tengo el comentario en do_stuff() ?

Insertando

 import pdb; pdb.set_trace() 

entrará en el depurador de Python en ese punto

Consulte aquí: http://docs.python.org/library/pdb.html

Si desea una solicitud interactiva estándar (en lugar del depurador, como se muestra en la preorganización), puede hacer esto:

 import code code.interact(local=locals()) 

Ver: el módulo de código .

Si tiene instalado IPython y desea un shell de IPython, puede hacer esto para IPython> = 0.11:

 import IPython; IPython.embed() 

o para versiones anteriores:

 from IPython.Shell import IPShellEmbed ipshell = IPShellEmbed() ipshell(local_ns=locals()) 

Si quieres un intérprete de Python predeterminado, puedes hacerlo

 import code code.interact(local=dict(globals(), **locals())) 

Esto permitirá el acceso tanto a locales como a globales.

Si desea ingresar a un intérprete de IPython, la solución IPShellEmbed está actualizada . Actualmente lo que funciona es:

 from IPython import embed embed()