Python / Package / flake8 : installer et utiliser le vérificateur de code
Flake8 examine le code Python sans exécuter le programme et signale des problèmes de style ou des erreurs possibles, notamment les imports inutilisés. Installez-le dans l’environnement du projet, puis lancez python -m flake8 fichier.py et corrigez les emplacements indiqués. Il ne vérifie pas tous les PEP et ne réécrit pas automatiquement le code.
PEP, PEP 8 et rôle de Flake8
PEP signifie Python Enhancement Proposal : un document présentant une fonctionnalité, une procédure ou une conception. Dans le système documentaire des PEP, PEP 8 concerne précisément le style du code Python. Vérifier le style ne signifie donc pas vérifier toutes les propositions Python.
Flake8 rassemble pycodestyle, l’analyse statique de Pyflakes et le contrôle de complexité de mccabe. La complexité nécessite un seuil tel que --max-complexity. Les diagnostics E et W concernent surtout le style ; F provient de Pyflakes. Des extensions peuvent ajouter des vérifications et des codes. Flake8 ne remplace ni un vérificateur de types ni les tests du programme.
Installer dans l’environnement du projet
Ouvrez un nouveau dossier d’exercice dans Windows PowerShell. Python et le lanceur Windows py doivent être disponibles. Si le projet possède déjà un environnement de ce nom, choisissez son interpréteur au lieu de le recréer. Utiliser directement son exécutable évite de modifier la stratégie d’exécution des scripts d’activation.
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 demande Python 3.10 ou ultérieur. Les commandes et diagnostics ont été vérifiés sous Windows avec Python 3.12.14 et Flake8 7.4.1. La version fixe facilite la reproduction ; pour une autre version, vérifiez les exigences Python et les changements de diagnostics. La dernière commande affiche les versions de Flake8 et de ses composants.
Sous macOS ou Linux, créez l’environnement avec le Python 3 disponible et utilisez .venv/bin/python pour pip et Flake8. Ne recopiez pas le chemin Windows. L’exécution comme module permet d’aligner l’interpréteur utilisé pour installer et pour vérifier.
Lire les positions et les diagnostics
Créez bad.py dans le projet avec ce code complet, en terminant aussi la dernière ligne par un saut de ligne. Son exécution avec le Python du projet affiche 1.
import os
value=1
print(value)
1
Un programme qui fonctionne peut conserver du code inutile ou des problèmes de style. Vérifiez ce même fichier depuis le dossier du projet :
.\.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
Le format est fichier:ligne:colonne: code explication. F401 indique que os, importé à la ligne 1, n’est pas utilisé. E225 indique un manque d’espaces autour de l’affectation à la ligne 2, colonne 6. La commande se termine avec le code de sortie 1 car elle a trouvé des violations. Consultez les codes de diagnostic de Flake8 et la documentation du composant concerné.
Corriger puis relancer le contrôle
Supprimez l’import inutile et ajoutez des espaces autour de l’affectation. Remplacez tout le contenu du fichier bad.py existant par ce code. Son résultat reste 1.
value = 1
print(value)
1
Vérifiez de nouveau le même fichier. --count ajoute le nombre de violations à la fin :
.\.venv\Scripts\python.exe -m flake8 --count bad.py
0
L’exemple corrigé affiche zéro violation et se termine avec le code 0. Sans --count, un contrôle réussi ne produit généralement aucun diagnostic. Flake8 n’effectue pas ces corrections : enregistrez-les dans l’éditeur avant de relancer la commande. Vérifiez séparément le comportement du programme et le résultat de l’analyse.
Définir les règles dans .flake8
Créez .flake8 à la racine du projet. Il s’agit de configuration INI, pas de Python. La limite de 88 caractères ci-dessous est un choix de projet. La limite par défaut de Flake8 est 79 ; choisir 88 ne modifie pas les recommandations de PEP 8.
[flake8]
max-line-length = 88
extend-exclude = .venv,build,dist
extend-exclude conserve les exclusions par défaut tout en ajoutant l’environnement et les dossiers de compilation. Assurez-vous de ne pas exclure des sources à contrôler. Sélectionnez explicitement la configuration :
.\.venv\Scripts\python.exe -m flake8 --config .flake8 --count bad.py
0
Le résultat reste zéro. Remplacez le dernier bad.py par . pour inspecter le projet entier ; d’autres fichiers peuvent produire des diagnostics. La documentation de configuration décrit la section [flake8] de .flake8, setup.cfg et tox.ini. Les arguments de commande ont priorité, y compris ceux transmis par l’éditeur ou la CI.
Limiter les exceptions et conserver les échecs
Avant de masquer une alerte, déterminez si le code est inutile ou si une exception est justifiée. Pour une exception inévitable sur une ligne, expliquez la raison et ciblez le code, par exemple # noqa: F401. ignore remplace la liste d’exclusions de diagnostics par défaut ; extend-ignore la complète. Vérifiez la signification des options.
En intégration continue (CI), conservez le code de sortie d’échec. --exit-zero annonce une réussite même avec des violations et ne convient donc pas à un contrôle bloquant. Enregistrez les versions de Flake8 et des extensions dans les dépendances du projet, puis examinez les changements de règles lors des mises à jour. Une analyse réussie ne prouve pas la validité des entrées, de la logique métier ou de l’environnement d’exécution : exécutez aussi le programme et les tests nécessaires.




