Gönnen Sie Ihrer Codebasis mit diesem benutzerfreundlichen Befehlszeilentool einen Frühjahrsputz.
Ein Linting-Tool ist eine wertvolle Ressource, die Ihnen dabei helfen kann, Fehler und Inkonsistenzen in Ihrem Code zu erkennen.
Flake8 ist eines der beliebtesten Linting-Tools für Python. Es identifiziert Syntax- und Formatierungsfehler in Ihrem Code sowie andere Probleme wie nicht verwendete Importe. Es ist sehr flexibel, denn obwohl es Standardregeln hat, können Sie diese ändern oder ergänzen, um sie an Ihre Anforderungen anzupassen.
Sie können Flake8 auch so konfigurieren, dass es ausgeführt wird, wenn Sie Aktualisierungen Ihres Codes mit VS Code speichern. All diese Funktionen machen es zu einem wertvollen Werkzeug beim Schreiben von Python-Programmen.
Flake8 installieren
Führen Sie die folgenden Schritte aus, um Flake8 in Ihrer Entwicklungsumgebung zu installieren. Möglicherweise müssen Sie Installieren Sie Pip auf Ihrem Computer Erste.
- Führen Sie den folgenden Befehl in Ihrem Terminal aus, um Flake8 zu installieren:
pip install flake8
- Überprüfen Sie, ob Flake8 installiert ist, indem Sie den folgenden Befehl ausführen:
flake8 --version
- Wenn Flake8 korrekt installiert ist, sollten Sie eine Ausgabe ähnlich der folgenden sehen:
4.0.1 (mccabe: 0.6.1, Pycodestyle: 2.8.0, Pyflakes: 2.4.0) CPython 3.9.13An
Linux
Sobald Sie Flake8 erfolgreich installiert haben, können Sie es verwenden.
Verwenden von Flake8 zum Analysieren von Python-Code
Um zu verstehen, wie Flake8 verwendet wird, beginnen Sie mit dem folgenden Code. Es enthält ein paar absichtliche Fehler. Kopieren Sie es in eine Datei namens gruß.py.
defGruß(Name):
drucken("Hallo, " + Name)
Gruß(„Alice“)
Gruß("Bob")
Ausführen von Flake8 für eine einzelne Datei
Die Syntax zum Ausführen von Flake8 für eine einzelne Datei lautet wie folgt.
flake8 path/to/file.py
Navigieren Sie in diesem Beispiel zu dem Verzeichnis, das die Datei greting.py enthält, und führen Sie den folgenden Befehl aus.
flake8 Greeting.py
Flake8 sollte die folgende Meldung zurückgeben, dass ein Einrückungsfehler aufgetreten ist.
Gruß.py:5:1: E999Einrückungsfehler: unerwartetEinzug
Diese Ausgabe zeigt an, dass Zeile 5 unnötigerweise eingerückt ist. Zu Beheben Sie diesen Einrückungsfehler, müssen Sie das Leerzeichen am Anfang dieser Zeile entfernen.
defGruß(Name):
drucken("Hallo, " + Name)
Gruß(„Alice“)
Gruß("Bob")
Wenn Sie nun Flake8 ausführen, erhalten Sie die folgenden Warnungen.
Gruß.py:4:1: E305erwartet 2 leerLiniennachKlasseoderFunktionDefinition, gefunden 1
Gruß.py:5:16: W292NEINNeue ZeilebeiEndevonDatei
Diese Ausgabe weist auf die folgenden Probleme hin:
- In Zeile 4 sollten nach der Definition der Begrüßungsfunktion zwei Leerzeilen stehen, aber es gibt nur eine.
- In Zeile 5 sollte am Ende der Datei eine neue Zeile stehen.
Sobald Sie diese Probleme behoben haben, sollte flake8 keine Nachrichten mehr zurückgeben.
Bisher haben wir nur eine Datei analysiert, aber in den meisten Fällen möchten Sie mehrere Dateien analysieren.
Ausführen von Flake8 für mehrere Dateien
Angenommen, Sie haben einen anderen Anruf test_greeting.py das den folgenden Code enthält:
aus Gruß importieren Gruß
deftest_greet():
behaupten Gruß(„Alice“) == „Hallo, Alice!“
Führen Sie den folgenden Befehl aus, um diese beiden Dateien zu analysieren.
flake8 Greeting.py test_greeting.py
Diese Methode funktioniert, aber wenn Sie mehr als zwei Dateien haben, kann das Eintippen der Dateinamen ermüdend und fehleranfällig sein.
Es ist effizienter, den folgenden Befehl zu verwenden, um alle Dateien im aktuellen Verzeichnis zu analysieren:
Flocke8 .
Flake8-Fehler und -Warnungen verstehen
Flake8 meldet zwei Arten von Problemen:
- Fehler: Ein Fehler weist auf ein Syntax- oder Strukturproblem hin, das die Ausführung Ihres Codes verhindert, wie der Einrückungsfehler aus dem Beispiel „gruss.py“.
- Warnungen: Eine Warnung weist auf ein potenzielles Problem oder einen Verstoß gegen die Stilrichtlinien von PEP 8 hin, wie etwa die Warnung „Kein Zeilenumbruch am Ende der Datei“ aus dem Beispiel „gruss.py“.
Einige der häufigsten Fehler und Warnungen sind:
- E101: Einzug enthält gemischte Leerzeichen und Tabulatoren.
- E302: 2 Leerzeilen erwartet, 0 gefunden.
- E999 IndentationError: Unerwarteter Einzug.
- W291: nachgestellter Leerraum.
- E501: Zeile zu lang (maximal 79 Zeichen).
- F401: Modul importiert, aber nicht verwendet.
Wenn Sie Flake8 ausführen, wird eine Nachricht wie die oben gezeigte sowie die Zeilennummer und die Codeposition ausgegeben, auf die sich die Nachricht bezieht. Dies hilft Ihnen zu erkennen, wo genau Ihr Code Probleme hat, was Ihnen Zeit beim Debuggen spart.
Flake8 konfigurieren
Für einige Projekte könnten die Regeln von Flake8 zu streng sein. In diesen Fällen können Sie Flake8 konfigurieren und sein Verhalten an Ihre Anforderungen anpassen.
Sie können Konfigurationsoptionen bereitstellen wie:
- Ignorieren bestimmter Fehler oder Warnungen.
- Festlegen der maximalen Zeilenlänge.
- Angabe zusätzlicher Regeln.
Erstellen Sie zur Demonstration eine Konfigurationsdatei mit dem Namen setup.cfg. Sie können die Konfigurationsoptionen auch einer Datei namens tox.ini oder .flake8 hinzufügen.
Beginnen Sie in dieser Datei mit der Erstellung eines flake8-Abschnitts wie folgt:
[Flocke8]
Fügen Sie dann die Optionen hinzu, die Sie konfigurieren möchten:
[Flocke8]
maximale Zeilenlänge = 100
ignorieren = F401
In diesem Beispiel weist max-line-length = 100 Flake8 an, Warnungen für jede Zeile in Ihren Quellcodedateien auszugeben, die länger als 100 Zeichen ist. ignore = F401 weist Flake8 an, Fehler im Zusammenhang mit nicht verwendeten Importen zu ignorieren.
Sie müssen diese Optionen nicht zu einer Konfigurationsdatei hinzufügen, da Sie sie wie folgt in der Befehlszeile angeben können:
flake8 --ignore E203 --max-line-length 100
Die Verwendung einer Konfigurationsdatei ist der beste Ansatz, da Sie nicht bei jeder Verwendung von flake8 dieselben Optionen angeben müssen.
Verwenden von Flake8 in VS-Code
Wenn Sie VS-Code zum Schreiben Ihrer Python-Anwendung verwenden, können Sie die Erweiterung flake8 verwenden, um Ihre Python-Dateien während der Eingabe zu linten.
Zuerst müssen Sie die flake8-Erweiterung vom VS Code-Marktplatz installieren. Um es zu konfigurieren, öffnen Sie als Nächstes die VS-Code-Einstellungen, suchen Sie nach „python.linting.flake8Enabled“ und aktivieren Sie Linting mit flake8.
Sie sollten jetzt beim Schreiben Fehler und Warnungen in Ihrem Code mit einer schnörkellosen Linie hervorgehoben sehen. Wenn Sie mit der Maus über den hervorgehobenen Text fahren, wird eine Meldung angezeigt, die das Problem erklärt und mögliche Lösungen vorschlägt.
Andere Python-IDEs wie Pycharm verfügen auch über Flake8-Erweiterungen, die Sie konfigurieren können, um den Linting-Prozess zu vereinfachen.
Warum sollten Sie einen Linter verwenden?
Beim Schreiben von Code können Fehler und Inkonsistenzen auftreten, die dazu führen, dass Ihre Anwendung fehlschlägt oder Leistungsprobleme auftreten. Mit einem Linter wie Flake8 können Sie einige dieser Probleme im Voraus erkennen und so saubereren Code schreiben. Die Integration in Ihren Entwicklungsworkflow ist sehr wichtig.
Sie können dies tun, indem Sie es in Ihrem Texteditor oder Ihrer IDE verwenden und in Ihr Continuous integrieren Integrationspipeline, um Ihren Code automatisch auf Fehler und Warnungen zu überprüfen, bevor Sie ihn mit Ihrem zusammenführen Hauptzweig.