Python / Package / flake8: Codeprüfung installieren und verwenden
Flake8 untersucht Python-Quelltext, ohne das Programm auszuführen, und meldet Stilprobleme sowie mögliche Fehler wie ungenutzte Imports. Installieren Sie es in der Projektumgebung und prüfen Sie mit python -m flake8 datei.py. Die Fundstellen und Diagnosecodes helfen bei der Korrektur; Flake8 prüft weder sämtliche PEPs noch korrigiert es den Code automatisch.
PEPs, PEP 8 und der Prüfumfang
PEP steht für Python Enhancement Proposal, ein Dokument über vorgeschlagene Funktionen, Abläufe oder Entwürfe. Im PEP-Dokumentationssystem beschreibt PEP 8 speziell den Python-Codestil. Eine Stilprüfung ist deshalb keine Prüfung aller Python-Vorschläge.
Flake8 verbindet pycodestyle, die statische Analyse von Pyflakes und die Komplexitätsprüfung von mccabe. Letztere benötigt einen Grenzwert wie --max-complexity. E und W betreffen überwiegend Stilfragen, F stammt von Pyflakes. Plugins können weitere Prüfungen ergänzen. Typprüfung und Programmtests bleiben eigenständige Aufgaben.
In einer Projektumgebung installieren
Öffnen Sie einen neuen Übungsordner in Windows PowerShell. Python und der Windows-Launcher py müssen verfügbar sein. Existiert bereits eine gleichnamige virtuelle Umgebung, verwenden Sie deren Interpreter, statt sie neu anzulegen. Der direkte Interpreterpfad erfordert keine Änderung der Ausführungsrichtlinie für Aktivierungsskripte.
py -3 -m venv .venv
.\.venv\Scripts\python.exe -m pip install "flake8==7.4.1"
.\.venv\Scripts\python.exe -m flake8 --version
Flake8 7.4.1 setzt Python 3.10 oder neuer voraus. Die Befehle und Diagnosen wurden unter Windows mit Python 3.12.14 und Flake8 7.4.1 geprüft. Die feste Version macht das Beispiel reproduzierbar. Bei einer anderen Version müssen Sie Python-Anforderungen und geänderte Diagnosen berücksichtigen. Der letzte Befehl zeigt die Versionen von Flake8 und seinen Komponenten.
Unter macOS und Linux legen Sie die Umgebung mit dem vorhandenen Python 3 an und starten pip und Flake8 über .venv/bin/python. Übernehmen Sie den Windows-Pfad nicht unverändert. Der Modulaufruf hilft, Installation und Prüfung demselben Interpreter zuzuordnen.
Fundstellen und Diagnosecodes lesen
Erstellen Sie im Projekt bad.py mit diesem vollständigen Inhalt. Auch die letzte Zeile erhält einen abschließenden Zeilenumbruch. Beim Ausführen mit dem Projektinterpreter erscheint 1.
import os
value=1
print(value)
1
Ein lauffähiges Programm kann dennoch überflüssigen Code oder Stilprobleme enthalten. Prüfen Sie dieselbe Datei im Projektordner:
.\.venv\Scripts\python.exe -m flake8 bad.py
bad.py:1:1: F401 'os' imported but unused
bad.py:2:6: E225 missing whitespace around operator
Das Format lautet Datei:Zeile:Spalte: Code Erklärung. F401 meldet den ungenutzten Import von os in Zeile 1. E225 meldet fehlende Leerzeichen am Zuweisungsoperator in Zeile 2, Spalte 6. Wegen der gefundenen Verstöße endet dieser Aufruf mit Rückgabecode 1. Die Diagnoseübersicht und die Dokumentation der jeweiligen Komponente erklären die Ursachen.
Korrigieren und erneut prüfen
Entfernen Sie den ungenutzten Import und ergänzen Sie Leerzeichen um den Operator. Ersetzen Sie den gesamten Inhalt der vorhandenen bad.py durch folgenden Code. Das Programm gibt weiterhin 1 aus.
value = 1
print(value)
1
Prüfen Sie dieselbe Datei erneut. --count zeigt abschließend die Anzahl der Verstöße:
.\.venv\Scripts\python.exe -m flake8 --count bad.py
0
Das Beispiel besteht mit null Meldungen und Rückgabecode 0. Ohne --count gibt eine erfolgreiche Prüfung normalerweise keine Diagnose aus. Flake8 führt die Änderungen nicht selbst durch: Speichern Sie die Korrektur im Editor und starten Sie die Prüfung erneut. Kontrollieren Sie Programmausgabe und Prüfresultat getrennt.
Projektregeln in .flake8 speichern
Legen Sie im Projektstamm eine Datei .flake8 an. Ihr Inhalt ist INI-Konfiguration, kein Python. Die Grenze von 88 Zeichen ist eine beispielhafte Projektentscheidung. Flake8 verwendet standardmäßig 79; 88 ist dadurch kein neuer PEP-8-Standardwert.
[flake8]
max-line-length = 88
extend-exclude = .venv,build,dist
extend-exclude behält die Standardausschlüsse bei und ergänzt Umgebung sowie Build-Ausgaben. Prüfen Sie, ob benötigter Quelltext versehentlich ausgeschlossen würde. Geben Sie die Konfiguration ausdrücklich an:
.\.venv\Scripts\python.exe -m flake8 --config .flake8 --count bad.py
0
Auch diese Prüfung meldet null Verstöße. Ersetzen Sie das letzte bad.py durch ., um das Projekt zu prüfen; andere Dateien können Meldungen erzeugen. Die Konfigurationsdokumentation beschreibt den Abschnitt [flake8] in .flake8, setup.cfg und tox.ini. Kommandozeilenargumente haben Vorrang, auch wenn Editor oder CI sie setzen.
Ausnahmen und Rückgabecodes richtig behandeln
Entscheiden Sie vor dem Unterdrücken, ob Code entfernt werden sollte oder eine begründete Ausnahme nötig ist. Begrenzen Sie unvermeidbare Ausnahmen auf eine Zeile und einen Code, etwa # noqa: F401, und dokumentieren Sie den Grund. ignore ersetzt die Standardliste; extend-ignore ergänzt sie. Beachten Sie die Bedeutung der Optionen.
Bei kontinuierlicher Integration (CI) muss der Fehlerstatus erhalten bleiben. --exit-zero liefert auch bei Verstößen Erfolg und eignet sich daher nicht als verbindliche Qualitätsprüfung. Halten Sie Flake8- und Plugin-Versionen in den Projektabhängigkeiten fest und prüfen Sie Regeländerungen bei Aktualisierungen. Eine bestandene statische Prüfung beweist weder korrekte Eingabeverarbeitung noch fachliche Logik oder Laufzeitkompatibilität; führen Sie das Programm und geeignete Tests zusätzlich aus.




