2017-06-23 2 views
1

Mein größtes Problem ist die Phantasie IPython Ausnahmen. Ich möchte, dass sie Ausnahmen wie normale Python aussehen, aber wenn ich versuche, sys.excepthook zurückgesetzt es funktioniert nicht:Machen Sie IPython wie eine normale Python-Shell

In [31]: import sys; sys.excepthook = sys.__excepthook__; (sys.excepthook, sys.__excepthook__) 
Out[31]: 
(<bound method TerminalInteractiveShell.excepthook of <IPython.terminal.interactiveshell.TerminalInteractiveShell object at 0x27c8e10>>, 
<function sys.excepthook>) 
+0

Es ist readonly, glaube ich. –

+0

Hmm, konnte in den Dokumenten nichts finden, was darauf hindeutet ... Gibt es keinen indirekten Weg, es zu ändern? – fakedrake

Antwort

3

IPython ersetzt sys.excepthook jedes Mal, wenn Sie eine Zeile Code ausführen, wodurch es sinnlos es jedes Mal zu ändern. Darüber hinaus fängt IPython alle Ausnahmen ab und behandelt sie selbst, ohne dass sys.excepthook aufgerufen werden muss. Dieser answer zu einer verwandten Frage bietet eine Möglichkeit, dieses Verhalten zu überschreiben: Im Grunde müssen Sie Ipython showtraceback Funktion mit einer, die Ihre Ausnahme formatiert und anzuzeigen, wie Sie es wollen, überschreiben.

Verwandte Themen