In Entwicklung Letztes Updateated:
Teilen:
Jira-Software ist das Projektmanagement-Tool Nr. 1, das von agilen Teams zum Planen, Verfolgen, Freigeben und Unterstützen großartiger Software verwendet wird.

Möchten Sie ein echter Python-Debugging-Experte sein? Debuggen Sie Ihren Python-Code mit diesen erstaunlichen Python-Debugging-Tools und -Bibliotheken, die wir bald behandeln werden!

Python ist eine allgemeine, objektorientierte Programmiersprache auf hoher Ebene, die für viele Entwicklungszwecke verwendet wird. Darüber hinaus ist es ein effektives Entwicklungstool für verschiedene Anwendungen, von der Entwicklung von Webanwendungen bis hin zu Bahnkratzen und komplexere Anwendungen wie Machine Learning und Data Science.

Während der Entwicklung können Fehler auftreten, die als Bugs in der Programmierung bezeichnet werden. Entwickler unternehmen mehrere Schritte, um sie zu erkennen und zu beseitigenate die vorhandenen und potenziellen Fehler aus dem Code. Infolgedessen prevEntferne den Programmcode vor der Zerstörung. Wir nennen das process Debuggen.

Dieser Artikel befasst sich mit mehreren verfügbaren Python-Debuggern, die Sie verwenden können. Wir werden auch sehen, wie unterschiedlich diese sind Debugger voneinander unterscheiden und was ihre Umsetzung effektiv macht.

cProfiler-Debugging-Bibliothek

cProfilerist eine beliebte Bibliothek und eine C-Erweiterung, die ausgeführt werden kann profiling von lang laufendem Code. Auf lange Sicht identifiziert es Abschnitte des Programmcodes, deren Ausführung lange dauert. Obwohl es die genaue Zeit ermittelt, die für die Ausführung verschiedener Abschnitte des Codes benötigt wird, werden Fehler im Code weder vollständig identifiziert noch behoben.

Daher besteht die Notwendigkeit, andere Debugger zu verwendenrises.

Fortunately, können Sie stattdessen empfohlene Bibliotheken wie ipdb, Django-debug-toolbar, pyelftools, viztracer und py-spy als Debugging-Tools für Ihren Python-Code verwenden.

Das ipdb-Debugging-Tool

Der IPython-fähige Python Debugger ist vollständig interaktiv third-Party-Debugger, der enthält pdb's Funktionalität. IPBD kommt auch mit interaktiver Shell-IPython-Unterstützung. Diese Unterstützung umfasst neben anderen Supportfunktionen die Vervollständigung von Tabulatoren, Farbunterstützung und magische Funktionen.

Dieser Debugger ermöglicht den Zugriff auf den IPython-Debugger, indem relevante Funktionen exportiert werden. Es bietet auch eine ähnliche Schnittstelle für eine bessere Selbstbeobachtung, genau wie im pdb-Modul.

Debuggen mit Ipdb

Die Bibliothek muss mit dem folgenden Pip-Befehl installiert werden.

pip install ipdb

Ein Beispiel für die Verwendung von ipdb würde wie folgt aussehen:

import ipdb
alpha_list = ['a', 'b', 'c']
fruit_list = ['orange', 'mango', 'kiwi']

def nested_loop():
    for fruit_list:
        print (fruit)
        ipdb.set_trace()
    for x in alpha_list:
        print(x)
if __name__ == '__main__':
    nested_loop()

Führen Sie die Python-Datei Verwenden Sie den folgenden Befehl, wobei test.py der Name meiner Datei ist:

python -m ipdb test.py

Die ipdb importieren und ausführen ipdb.set_trace() Die Funktion ermöglicht den Beginn des Programms und führt den Debugger durch die Ausführung.

Der ipdb.pm() function(post-mortem) verhält sich ähnlich wie die %debug magische Funktion.

set_trace-Argumente

Übergeben Sie den Kontext als Argument an set_trace um mehrere definierte Codezeilen anzuzeigen. Zusatzally, cond, Die set_trace akzeptiert auch als Argument, akzeptiert boolesche Werte und startet die ipdb-Schnittstelle, wenn Sie festlegen cond zu true.

Konfigurationsdatei verwenden

Legen Sie das Kontextargument mit einer idpdb-Datei oder der setup.cfg Datei, die im Home- bzw. Projektordner verfügbar ist. Sie können die Funktionalität von ipdb gerne weiter überprüfen.

Django Debug-Symbolleiste

Der Django Debug-Toolbar ist ein beliebtes Debugging-Tool in Django: einem Python-Framework.

Dieser konfigurierbare Satz von Fenstern zeigt die Debug-Informationen einer aktuellen Anfrage oder Antwort an. Wenn Sie auf die Symbolleiste klicken, werden weitere Details zum Inhalt des Bereichs angezeigt.

Dieses Tool gründlich inspectEs ist die Django-Entwicklungsumgebung.

Folgen Sie der Installation process und die Konfigurationsanleitung hier.

Pyelftools-Bibliothek

Der Pyelftools Die Bibliothek basiert ausschließlich auf Python. Es parst und analysiert ELF-Dateien und DWARF-Debugging-Informationen und erfordert nur die Ausführung von Python.

Die Verwendung von Pyelftools ist einfach, da es keine externen Bibliotheken hat. ZusatzallyDie Verwendung von Pyelftools ohne Installation ist ziemlich einfach, da lediglich Anpassungen erforderlich sind PYTHONPATH in den Umgebungsvariablen.  

Sie installieren es mit:

pip install pyelftools 

Die Implementierung von pyelftools erfordert lediglich den Import und den Aufruf in Ihrem Programm.

Das icecream 🍦 Debugging-Tool

Dies ist ein weiteres effizientes Debugging-Tool für Python-Entwickler.

Die richtigen icecreamAuch ic(), hat viele Vorteile gegenüber print(), wie unten beschrieben:

  • Das Tippen ist relativ schneller, Literally.
  • Es druckt Datenstrukturen ziemlich gut.
  • Drucken Sie Ausdrücke oder Variablennamen und ihre Werte mit ic().
  • Es hebt die Syntax der Ausgabe hervor.
  • OptionallyEs enthält den Programmkontext, einschließlich Dateiname, Zeilennummer und der übergeordneten Funktion.                     

Bevor Sie dieses Paket verwenden, installieren Sie es mit dem folgenden Pip-Befehl:

pip install icecream

Das Gute ist, dass Sie in Anspruch nehmen können ic() in allen Dateien, ohne es notwendigerweise in alle Dateien zu importieren, indem Sie es mit installieren install(). Außerdem install() fügt ic() zum builtins-Modul. Alle Dateien, die der Interpreter importiert, werden geteilt ic().

Fügen Sie in Ihrer ersten Root-Python-Datei, die Sie x.py nennen können, hinzu ic() Verwendung von install().

from icecream import install
install()
from y import mult
mult()
 

In y.py fil wird die x.py-Datei importiert, ic() aufrufen

def mult():
    z=8
    ic(z)

Ergebnisse:

y
ic| z : 8

Was ic() effizienter macht, ist seine Fähigkeit inspect Variablen, die ihm übergeben werden, einschließlich ihmself, und geben Sie dann seine Argumente und die Argumentwerte wie im folgenden Beispiel aus.

from icecream import ic
def mult(x):
    return x * 4
ic(mult(100))

Ausgang:

ic| mult(100): 400

Darüber hinaus können Sie ic() in bereits vorhandenen Code einfügen, da es seine Argumente zurückgibt. Das folgende Beispiel kehrt zurück ic| x: 12 und dann ic| y: 48.

from icecream import ic
x = 12
def mult(x):
    return x*4
    y = mult(ic(x))
    ic(y)

Debuggen mit dem Py-Spy-Tool            

Sie können verwenden Py-Spion zu profile Beispiele für Python-Programme als Debugging-Tool. Ohne das Programm neu zu starten oder seinen Code zu ändern, visualisiert py-spy die Ausführung des Python-Programms. Da es außerdem in Rust geschrieben ist, ist der Overhead gering.

ZusatzallyEs ist zu bedenken, dass die Verwendung von py-spy gegen Produktions-Python-Code sicher ist, da er anders ausgeführt wird process von dem profigeführtes Python-Programm.

Wie jedes andere vorhergehende Tool, das wir gesehen haben, können Sie das Py-Spy-Tool nach der Installation verwenden.

pip install py-spy 

Obwohl Ihr Python-Programm den Produktionsverkehr bedient, können Sie dies dennoch tun profile und debugge dieses Programm mit py-spy, was es zu einem kritischen Python macht profiler-Werkzeug.

Viztracer-Debugger

Alternativ können Sie viztracer, ein Debugging-Tool, verwenden, um die Ausführung Ihres Python-Programms zu verfolgen und zu visualisieren. Es ist auch ein profiTool mit geringem Protokollierungsaufwand.

Was macht Viztracer ein effektives Debugging-Tool?

  • Die Verwendung ist ziemlich einfach und hängt nicht von externen Paketen ab, um zu funktionieren.
  • Viztracer operates auf allen Betriebssystemen platFormen: Windows, Linux oder macOS.
  • Sein leistungsstarkes Front-End rendert reibungslos Trace auf GB-Ebene.
  • Es verwendet RegEx, um AR zu protokollierenbiträre Funktionen und extra Informationen wie Variablen und Attribute, Erhöhte Ausnahmen, Garbage Collector-Operationenusw., ohne einen Codeabschnitt in Ihrem Quellcode zu ändern.
  • Was viztracer zu einem Low-Overhead-Debugging-Tool macht, ist seine Fähigkeit, Daten herauszufiltern, die Sie in Ihrem Programm nicht benötigen. Es behält dann alte Informationen bei, bevor das Protokoll im JSON-Format ausgegeben wird.
  • Sie können es verwenden, um benutzerdefinierte Ereignisse wie das einzufügen sofortiges Ereignis, der Variables EreignisUnd der Dauerereignis während das Programm läuft. Auf diese Weise funktioniert es wie ein Druck-Debug, außer dass viztracer Sie wissen lässt, wann der Druck auftritt, während Sie Daten verfolgen.

Schlussfolgerung

Python profiling und debugging einfach so Software. profiLeng ist ein wichtiger Schritt in einer Entwicklung, die Aufmerksamkeit erfordert. Dieser Schritt hilft dabei, Codeabschnitte mit Fehlern auszuschließen, sodass die Gesamtleistung des Codes optimiert wird.

Die oben behandelten Debugging-Tools sind effiziente Tools, die die Arbeit eines Python-Entwicklers ziemlich einfach machen.

Da die anderen Debugging-Tools effektiver arbeiten als cProfiler, Sie können wie ein wahrer Held Ihren Python-Code debuggen und Beheben Sie alle potenziellen Fehler Verwenden dieser Debugger, um prevVerhindern Sie, dass Ihr Code ohne Absturz ausgeführt wird.

Viel Spaß beim Debuggen!

Teilen:
  • Neema Muganga
    Autor
    Neema ist eine erfahrene technische Autorin und profialter Webentwickler. Sie liebt es, über Entwicklung durch Schreiben und Programmieren zu unterrichten.

Danke an unsere Sponsoren

Weitere großartige Lektüre zum Thema Entwicklung

Treiben Sie Ihr Geschäft an

Einige der Tools und Services, die Ihrem Unternehmen helfen grow.