Ipython: No se puede escapar de IPython.embed () cuando se llama repetidamente dentro de la función dentro de un bucle for

Creado en 20 ene. 2016  ·  3Comentarios  ·  Fuente: ipython/ipython

Estoy ejecutando foo.py desde la línea de comando, e incluye una función que tiene un bucle for, dentro del cual hay una función que tiene una declaración IPython.embed (). Esto es para inicializar un intérprete en ese punto dentro de la función para tener acceso a esas variables locales.

Sin embargo, cuando intenta escapar del intérprete incorporado, solo abre un nuevo intérprete (presumiblemente hasta k veces para el bucle for), bloqueando efectivamente ese terminal.

Sería bueno tener un comando análogo al ipdb de q , que inmediatamente lanza una excepción y sale de la CLI en la que se ejecutó foo.py .

Comentario más útil

Sería bueno tener un solo comando que detuviera por completo la ejecución del script. Como el equivalente de:

  1. %kill_embedded (y sí, seguro)
  2. exit
  3. "ctrl + c" (tres veces)

Todos 3 comentarios

Pruebe %kill_embedded : no se sale de su bucle, pero debería realizar todas las llamadas futuras a embed() no-ops, de modo que el resto de su script se ejecute hasta su finalización.

Sería bueno tener un solo comando que detuviera por completo la ejecución del script. Como el equivalente de:

  1. %kill_embedded (y sí, seguro)
  2. exit
  3. "ctrl + c" (tres veces)

%exit_raise generará una excepción en el contexto externo y su código saldrá

¿Fue útil esta página
0 / 5 - 0 calificaciones