2016-05-20 9 views
1

Wie stellen wir mehrere Haltepunkte in Python mit IPython, so dass wir zum Beispiel an Zeile 4 und Zeile 100 stoppen?Debug Python-Skript mit mehreren Breakpoints in IPython

Können wir unsere Meinung ändern und zusätzliche Breakpoints setzen, während Sie bereits debuggen?

+0

Mögliches Duplikat von [Breakpoint-induziertes interaktives Debugging von Python mit IPython] (http://stackoverflow.com/questions/14635299/breakpoint-induced-interactive-debugging-of-python-with-ipython) –

+1

Die Frage, die Sie erwähnt scheint entweder nur einen Haltepunkt zuzulassen, entweder Zeile für Zeile. Ich bin daran interessiert, an mehreren Orten anzuhalten und den Rest dazwischen zu überspringen. – Kenny

+0

Pycharm hat das. –

Antwort

1

iPython bietet IPython.core.debugger.Tracer Debugger-Klasse, die zum Debuggen verwendet werden kann.

Lasst uns sagen, dass ich unten Code haben in myScript.py geschrieben:

from IPython.core.debugger import Tracer 
zz = Tracer() 

print "iPython" 
zz() 
print "is a" 
print "command shell" 
zz() 
print "for" 
print "interactive computing" 
print "in" 
print "multiple programming languages" 
print "including" 
print "Python" 

Wie Sie sehen, habe ich festgelegt 2 Stützpunkte im Skript von Anfang an Linie 5 und 8. Im Folgenden Ich verwende dieses Skript und wird Einstellung 2 Stützpunkte in Zeile 12 & 13.

$ ipython myScript.py 
iPython 
> /home/user/Documents/myScript.py(6)<module>() 
     4 print "iPython" 
     5 zz() 
----> 6 print "is a" 
     7 print "command shell" 
     8 zz() 

ipdb> break 12 
Breakpoint 1 at /home/user/Documents/myScript.py:12 
ipdb> break 13 
Breakpoint 2 at /home/user/Documents/myScript.py:13 

auch wenn innerhalb Debuggen, können Sie c Befehle für fortsetzen und n für den nächsten Schritt. Hoffentlich hilft es dir.

+0

Danke. Was mir fremd ist, ist der Grund, warum so eine gemeinsame Sprache etwas so Grundsätzliches von einem Debugger vermisst und niemand scheint ein Auge auf das zu haben, was ich gegoogelt habe. – Kenny