Kein Wunder, dass es noch Entwickler gibt, die immer noch mit print-Anweisungen debuggen – das Thema ist nicht gerade einsteigerfreundlich, und pdb schreckt ab. PyCharm hingegen bietet Python-Debugging mit einer grafischen Bedienoberfläche, die wesentlich benutzerfreundlicher ist. Der Start ist einfach, und das Einarbeiten in fortschrittlichere Debugging-Funktionen gelingt unkompliziert.
Natürlich kann PyCharm den Code, den Sie auf Ihrem lokalen Computer ausführen, mit Leichtigkeit debuggen – unabhängig davon, ob es sich um Ihre systemweite Python-Installation oder um eine virtualenv-, Anaconda- oder Conda-Umgebung handelt. In PyCharm Professional Edition können Sie jedoch auch Code debuggen, der in einem Docker-Container, in einer VM oder auf einem Remote-Host über SSH ausgeführt wird.
Auch in Vorlagen lassen sich Bugs nicht ganz vermeiden. Diese zu finden kann hingegen ganz schön schwer sein, wenn man nicht sieht, was in den Vorlagen vor sich geht. Mit dem PyCharm-Debugger können Sie in Django- und Jinja2-Vorlagen Haltepunkte setzen und solche Probleme auf einfache Weise beheben.
Hinweis: Zum Debuggen von Vorlagen konfigurieren Sie zuerst die Vorlagensprache.
Jedes moderne Webprojekt beinhaltet JavaScript, und deshalb muss auch jede moderne Python-IDE JavaScript debuggen können. PyCharm Professional Edition bringt dafür den leistungsstarken JavaScript-Debugger von WebStorm mit. Der JavaScript-Debugger unterstützt sowohl Browser-JS als auch NodeJS.
Bei der testgetriebenen Entwicklung (test-driven development oder TDD) wird die Entwicklung durch das Schreiben von Tests vorangebracht. Der Debugger erleichtert Ihnen das Erkunden des Codes durch die Möglichkeit, im untersuchten Kontext Haltepunkte zu setzen.
Diese Untersuchung kann sich auf den Testcode oder den getesteten Code beziehen. Besonders hilfreich ist dies für Django-Integrationstests (die Django-Unterstützung ist nur in der PyCharm Professional Edition verfügbar). Verwenden Sie einen Haltepunkt, um herauszufinden, welche Daten in einem Testfall von einer Abfrage übertragen werden.
PDB ist ein großartiges Tool, aber es setzt Änderungen im Code voraus. Dadurch passiert es schon mal, dass ein pdb.set_trace() -Aufruf versehentlich in Ihrem Git-Repo landet.
Alle Debugger haben Haltepunkte – aber nur bei wenigen sind sie richtig flexibel. Mussten Sie auch schon Dutzende Male auf „Fortsetzen“ klicken, bis Sie endlich die Schleifeniteration erreichten, bei der es zum Fehler kam? Mit den bedingten Haltepunkten von PyCharm können Sie sich das ersparen.
Manchmal benötigt man nichts weiter, als den Wert einer bestimmten Variablen während der gesamten Codeausführung zu sehen. Sie können die Haltepunkte von PyCharm so konfigurieren, dass Ihr Code nicht angehalten, sondern nur eine Meldung im Protokoll gespeichert wird.
Ausnahmen können einem den Tag verderben. Auch hier kann Sie der PyCharm-Debugger unterstützen, indem die Ausführung bei Ausnahmen unterbrochen wird, auch wenn Sie sich zunächst nicht ganz sicher sind, wo sie ausgelöst werden.
Damit Sie beim Debuggen immer das Heft in der Hand behalten, verfügt PyCharm über ein Übersichtsfenster, in dem Sie alle Haltepunkte sehen und einzelne per Kontrollkästchen deaktivieren können. Sie können auch alle Haltepunkte vorübergehend stummschalten, bis Sie sie wieder benötigen.
Sobald PyCharm auf einen Haltepunkt trifft, werden alle Variablenwerte inline in Ihrem Code angezeigt. Damit Sie leicht erkennen können, welche Werte sich seit dem letzten Erreichen des Haltepunkts geändert haben, werden geänderte Werte hervorgehoben.
Passen Sie die Variablenansicht individuell an, indem Sie Überwachungen hinzufügen. Sie können diese einfach oder komplex gestalten – je nachdem, was Sie genau sehen möchten.
Sie müssen nicht überall Haltepunkte setzen, wenn Sie nur wissen wollen, welchen Weg Ihr Code nimmt. Sie können Ihren Code Schritt für Schritt ausführen und genau verfolgen, was passiert.
In manchen Fällen lässt sich ein Problem am einfachsten reproduzieren, indem man eine Variable auf einen bestimmten Wert setzt. PyCharm bietet sowohl „Evaluate expression“, um durch Auswertung eines Ausdrucks schnell etwas zu ändern, als auch eine Konsole, wenn Sie mehr Flexibilität benötigen. Die Konsole kann sogar die IPython-Shell verwenden, wenn diese installiert ist.
Bei Python-3.6-Code ist der PyCharm-Debugger schneller als jeder andere Debugger auf dem Markt. Er hängt sogar PDB ab. Somit können Sie Ihren Code während der Entwicklung immer im Debugger ausführen und bei Bedarf nach Belieben Haltepunkte hinzufügen. Sie müssen nur auf eines achten: Klicken Sie unbedingt auf „install“, wenn PyCharm Sie fragt, ob Sie die Cython-Speedups installieren möchten.