J'exécute foo.py
partir de la ligne de commande, et cela inclut une fonction avec une boucle for, à l'intérieur de laquelle se trouve une fonction qui a une instruction IPython.embed(). Il s'agit d'initialiser un interpréteur à ce stade de la fonction pour avoir accès à ces variables locales.
Cependant, lorsque vous essayez d'échapper à l'interpréteur intégré, il n'ouvre qu'un nouvel interpréteur (probablement jusqu'à k fois pour la boucle for), verrouillant efficacement ce terminal.
Ce serait bien d'avoir une commande analogue à ipdb
de q
, qui lève immédiatement une exception et sort vers la CLI dans laquelle foo.py
été exécuté.
Essayez %kill_embedded
- il ne sort pas de votre boucle, mais il devrait effectuer tous les futurs appels à embed()
no-ops, afin que le reste de votre script s'exécute jusqu'à la fin.
Ce serait bien d'avoir une seule commande qui arrêterait complètement l'exécution du script. Comme l'équivalent de :
%kill_embedded
(et oui, bien sûr)exit
%exit_raise
lèvera une exception dans le contexte externe et votre code se terminera
Commentaire le plus utile
Ce serait bien d'avoir une seule commande qui arrêterait complètement l'exécution du script. Comme l'équivalent de :
%kill_embedded
(et oui, bien sûr)exit