Outils complémentaires pour Vsc et python : linter
Le linting en python avec vscode permet de souligner les fautes de style de python.
C'est une aide précieuse pour écrire du code qui est à la fois fonctionnel et lisible. Cela permet de supprimer la majorité des problèmes avant l'exécution.
Il faut installer des plugins pythons spécifiques pour le linting. Il en existe de nombreux. On vous propose ici d'utiliser flake8 qui permet de respecter la PEP8.
Installation
Extension vscode
Pour utiliser le linter avec vscode, installez l'extension vscode nommée "flake8" développé par microsoft.
Une fois l'extension installée, nous allons la configurer pour qu'elle ne nous embête pas si l'on écrit une ligne de plus de 80 caractères (l'erreur 501), qui est une règle plus ou moins obsolète.
- aller dans les paramètres : cliquez sur l'engrenage > paramètres
- en prenant garde d'ètre dans l'onglet utilisateur, tapez
flake8
dans la bvarre de recherche - dans la liste d'options, trouver la ligne
Flake8: args
et ajouter la ligne--ignore=E501
Si vous trouvez qu'une erreur soulignée par le linter n'en est pas une (comme l'erreuir 501), il faut la supprimer des erreurs rendues. Si le linter souligne une erreur il faut que s'en soit une, sinon vous allez vite ne plus tenir compte de ses recommendations... Et le linter ne servira à rien, voir sera néfaste car il rendra votre code moins lisible en soulignant des choses.
Module python
Dans un terminal, qui peut être celui de vscode, tapez la commande :
python -m pip install flake8
Ceci vous permettra d'utiliser le linter dans le terminal. De plus, l'extension vscode va préférentiellement utiliser votre version de flake8 que la sienne.
Utilisation
Une fois installée, l'extension est automatiquement activée et elle va souligner en rouge toute faute de style.
flake8
dans le terminal
Vous pouvez aussi toujours exécuter la commande flake8 mon-fichier.py
dans un terminal intégré pour obtenir le linting de votre fichier. C'est moins pratique que lorsque vscode le fait puisque la ligne en question n'est pas soulignée dans l'interface.