Ich führe foo.py
von der Befehlszeile aus und es enthält eine Funktion mit einer for-Schleife, in der sich eine Funktion mit einer IPython.embed()-Anweisung befindet. Dies dient dazu, einen Interpreter an diesem Punkt innerhalb der Funktion zu initialisieren, um Zugriff auf diese lokalen Variablen zu haben.
Wenn Sie jedoch versuchen, dem eingebetteten Interpreter zu entkommen, wird nur ein neuer Interpreter geöffnet (vermutlich bis zu k-mal für die for-Schleife), wodurch dieses Terminal effektiv gesperrt wird.
Es wäre schön, einen ähnlichen Befehl wie ipdb
q
, der sofort eine Ausnahme auslöst und zu der CLI verläßt, in der foo.py
ausgeführt wurde.
Versuchen Sie es mit %kill_embedded
- es bricht nicht aus Ihrer Schleife aus, aber es sollte alle zukünftigen Aufrufe an embed()
No-Ops machen, damit der Rest Ihres Skripts vollständig ausgeführt wird.
Es wäre schön, einen einzigen Befehl zu haben, der die Ausführung des Skripts vollständig stoppen würde. Wie das Äquivalent von:
%kill_embedded
(und ja, sicher)exit
%exit_raise
löst eine Ausnahme im äußeren Kontext aus und Ihr Code wird beendet
Hilfreichster Kommentar
Es wäre schön, einen einzigen Befehl zu haben, der die Ausführung des Skripts vollständig stoppen würde. Wie das Äquivalent von:
%kill_embedded
(und ja, sicher)exit