8 Stimmen

Wie kann man dem CPython-Interpreter programmatisch mitteilen, dass er in den interaktiven Modus wechseln soll, wenn er fertig ist?

Wenn Sie den cpython-Interpreter mit der Option -i aufrufen, wechselt er in den interaktiven Modus, sobald alle Befehle oder Skripte, die er ausführen soll, abgeschlossen sind. Gibt es eine Möglichkeit, den Interpreter innerhalb eines Programms dazu zu bringen, dies auch dann zu tun, wenn er nicht die Option -i erhalten hat? Der offensichtliche Anwendungsfall ist die Fehlersuche durch interaktive Prüfung des Zustands, wenn eine außergewöhnliche Bedingung aufgetreten ist.

14voto

Douglas Leeder Punkte 50423

Sie wollen die Code-Modul .

#!/usr/bin/env python

import code    
code.interact("Enter Here")

5voto

theller Punkte 2661

Setzen Sie die Umgebungsvariable PYTHONINSPECT. Dies kann auch im Skript selbst geschehen:

import os
os.environ["PYTHONINSPECT"] = "1"

Zur Fehlersuche bei unerwarteten Ausnahmen können Sie auch dieses nette Rezept verwenden http://code.activestate.com/recipes/65287/

3voto

asmundg Punkte 31

El Rezept wie in der anderen Antwort erwähnt, mit sys.excepthook klingt wie das, was Sie wollen. Andernfalls könnten Sie Folgendes ausführen code.interact beim Beenden des Programms:

import code
import sys
sys.exitfunc = code.interact

1voto

Victor Yan Punkte 2982

Die beste Methode, die ich kenne, ist:

from IPython import embed
embed()

die den Zugriff auf Variablen im aktuellen Bereich ermöglicht und Ihnen die volle Leistungsfähigkeit von IPython bietet.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X