Gibt es eine Möglichkeit, ein Python-Skript programmgesteuert zu zwingen, an einem beliebigen Punkt seiner Ausführung in eine REPL zu fallen, selbst wenn das Skript über die Befehlszeile gestartet wurde?
Ich schreibe ein schnelles und schmutziges Plotprogramm, mit dem ich Daten aus stdin oder einer Datei lesen, plotten und dann in REPL ablegen möchte, damit das Plot angepasst werden kann.
python
interactive
Dsimcha
quelle
quelle
Ich benutze dies häufig:
quelle
pdb
können Sie verwendeninteract
.So sollten Sie es machen (IPython> v0.11):
Für IPython <= v0.11:
Sie sollten IPython verwenden, den Cadillac von Python REPLs. Siehe http://ipython.org/ipython-doc/stable/interactive/reference.html#embedding-ipython
Aus der Dokumentation:
quelle
Um iPython und die Funktionalität des Debuggers nutzen zu können , sollten Sie ipdb verwenden .
Sie können es auf die gleiche Weise wie pdb verwenden, mit dem Zusatz von:
quelle
Sie können den Debugger starten:
Nicht sicher, wofür Sie die REPL wollen, aber der Debugger ist sehr ähnlich.
quelle
Ich habe dies gerade in einem meiner eigenen Skripte getan (es läuft in einem Automatisierungsframework, das eine riesige PITA für das Instrument darstellt):
Platzieren Sie dies einfach an einer beliebigen Stelle, an der Sie einen Haltepunkt wünschen, und Sie können den Status mit derselben Syntax wie der Python-Interpreter überprüfen (obwohl Sie anscheinend keine Modulimporte durchführen können). Es ist nicht sehr elegant, erfordert aber kein anderes Setup.
quelle