Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

Debuggen Sie Python wie ein Held mit diesen Bibliotheken und Tools

Python-Debugging-Scan
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

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 treten häufig Fehler auf, die als Bugs in der Programmierung bezeichnet werden. Entwickler unternehmen mehrere Schritte, um die vorhandenen und potenziellen Fehler im Code zu erkennen und zu beseitigen. Dadurch verhindern Sie, dass der Programmcode zerquetscht wird. Wir nennen diesen Prozess Debugging.

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 library

cProfiler, ist eine beliebte Bibliothek und eine C-Erweiterung, die die Profilerstellung von lange laufendem Code ausführt. Auf lange Sicht identifiziert es Abschnitte des Programmcodes, deren Ausführung lange dauert. Obwohl es die genaue Zeit identifiziert, die benötigt wird, um verschiedene Abschnitte des Codes auszuführen, werden Fehler im Code nicht vollständig identifiziert oder behoben.

Daher entsteht die Notwendigkeit, andere Debugger zu verwenden.

Glücklicherweise 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.

The ipdb debugging tool

Der vollständige IPython-fähige Python-Debugger ist ein interaktiver Debugger von Drittanbietern, der Folgendes 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.

Dieses 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. Zusätzlich, 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 toolbar

Dieses 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 untersucht die Django-Entwicklungsumgebung gründlich.

Folgen Sie dem Installationsprozess und den Konfigurationsanweisungen hier .

Pyelftools library

Dieses 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. Darüber hinaus ist die Verwendung von pyelftools ohne Installation ziemlich einfach, da lediglich eine Anpassung erforderlich ist 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.

The icecream 🍦 debugging tool

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

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

  • Das Tippen ist buchstäblich relativ schneller.
  • Es druckt Datenstrukturen ziemlich gut.
  • Drucken Sie Ausdrücke oder Variablennamen und ihre Werte mit ic().
  • Es hebt die Syntax der Ausgabe hervor.
  • Optional enthält es den Programmkontext, einschließlich des Dateinamens, der 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, ihm übergebene Variablen, einschließlich sich selbst, zu untersuchen und dann seine Argumente und die Argumentwerte wie im folgenden Beispiel auszugeben.

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)

Debugging using the py-spy tool            

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

Darüber hinaus ist zu bedenken, dass die Verwendung von Py-Spy gegen Produktions-Python-Code sicher ist, da es einen anderen Prozess als das profilierte Python-Programm ausführt.

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 Produktionsdatenverkehr bedient, können Sie dieses Programm immer noch mit Py-Spy profilieren und debuggen, was es zu einem wichtigen Python-Profiler-Tool macht.

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 Profiling-Tool mit Low-Overhead-Protokollierung.

Was macht Viztracer ein effektives Debugging-Tool?

  • Die Verwendung ist ziemlich einfach und hängt nicht von externen Paketen ab, um zu funktionieren.
  • Viztracer läuft auf allen Betriebssystemplattformen: Windows, Linux oder macOS.
  • Sein leistungsstarkes Front-End rendert reibungslos Trace auf GB-Ebene.
  • Es verwendet RegEx, um beliebige Funktionen und zusätzliche Informationen wie z 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.

Fazit

Python-Profilerstellung und Debugging genauso wie Software-Profilierung 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 der cProfiler, können Sie wie ein echter Held Ihren Python-Code debuggen und Beheben Sie alle potenziellen Fehler Verwenden Sie diese Debugger, um zu verhindern, dass Ihr Code ohne Absturz ausgeführt wird.

Viel Spaß beim Debuggen!

Danke an unsere Sponsoren
Weitere großartige Lektüre zum Thema Entwicklung
Treiben Sie Ihr Geschäft an
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder