Blog Arolla

Configurer son VS Code aux petits oignons pour Python sous Windows

Je suis initialement un habitué de PyCharm que j’affectionne beaucoup. J’y ai fait mes premiers pas en Python et développé de fortes habitudes. Toutefois, malgré mon affection pour cet IDE, il n’était pas le plus approprié dans le contexte de ma dernière mission.

Il y avait deux contraintes à prendre en compte :

  • La première était que le développement sur ce projet nécessitait un environnement Linux (Jusqu’ici tout va bien).
  • La deuxième était que Windows était installé sur les ordinateurs utilisés au cours de la mission et que je n’avais pas les droits pour accéder au BIOS et installer Linux en dual boot.

Il fallait donc que je développe dans un environnement Linux sans quitter Windows. Si vous avez l’impression de sentir une odeur de paradoxe et une légère confusion, ne vous inquiétez pas, ces symptômes sont normaux.

Deux solutions s’offraient quand même à moi :

  • Utiliser une machine virtuelle Linux,
  • Ou installer WSL2 pour avoir un terminal Linux et le combiner avec VS Code avec lequel il s’intègre très bien.

J’ai préféré la deuxième option parce qu’autant que possible, je souhaitais rester dans le même environnement et qu’elle est moins gourmande en ressources. Il ne me restait plus qu’à m’approprier l’éditeur de texte et en faire une force. Je me suis donc embarqué dans une aventure quotidienne de découverte de VS Code et j’y ai appris au passage de nombreuses astuces pour optimiser mon expérience de développement.

VS Code a l’avantage d’être personnalisable grâce à ses nombreuses extensions. Une pincée de git par ci, une lamelle de linter par là ou encore des extensions de tests comme épices, autant d’ingrédients pour faire de VS Code un vrai caviar pour sa vie de développeur.

Si tu fais du Python et souhaites utiliser VS Code d’une façon plus optimale, ou alors tu es tout simplement curieux ou curieuse, cet article est fait pour toi.

Dans les lignes qui suivent, je vais détailler les moyens que j’ai mis en place pour optimiser mon expérience sur cet éditeur.

Étape 1 : Commencer par l’installer

Visual Studio Code (VS Code pour les intimes) est un éditeur de texte gratuit créé par Microsoft pour les développeurs sur Windows, Linux ou MacOS. Comme la plupart des éditeurs de texte, il permet de développer au choix dans une grande variété de langages : Python, Java, C, C#, JavaScript, Go ou même Zig (oui oui, Zig).

C’est l’ingrédient principal de la recette. Pour le customiser, il faut d’abord l’installer. Tu peux le trouvez gratuitement à l’adresse suivante : https://code.visualstudio.com/

Étape 2 : Installer WSL2

Le code et Linux, c'est comme une madeleine et du yaourt : ils peuvent exister l’un sans l’autre, mais on dirait qu’ils sont faits l’un pour l’autre. Même sous Windows ils trouvent le moyen d'être ensemble grâce à WSL2. C'est beau l'amour quand même !

Cerise sur le gâteau, le terminal Linux offert par WSL2 peut être utilisé directement depuis l’éditeur de VS Code. Utiliser l’éditeur VS Code de cette manière revient exactement à développer sur un environnement Linux comme je vous le montre plus bas.

Installer WSL2

[WSL2] (Windows Subsystem for Linux version 2) est la version 2 d’une couche de compatibilité permettant d’exécuter un environnement GNU/Linux de manière native sur un environnement Windows 10, Windows 11 ou Windows Server 2019. On peut y exécuter la plupart des utilitaires, applications et outils Linux en ligne de commande. WSL2 comporte un véritable noyau Linux et a le gros avantage d’éviter la surcharge d’une machine virtuelle traditionnelle ou d’une configuration à double démarrage.

Grâce à WSL2, on peut notamment utiliser un terminal Linux d’une distribution de notre choix sans jamais quitter Windows. J’utilise par exemple Ubuntu 20.04 dans mon terminal WSL2.

Pour l’installer, va sur ton navigateur préféré et suit scrupuleusement les instructions qui se trouvent à cette adresse : https://docs.microsoft.com/fr-fr/windows/wsl/install

Lancer VS Code depuis un terminal WSL

Pour commencer, ouvre VS Code si ce n’est pas déjà fait et rendez-vous dans la boutique d’extensions du menu de gauche, également accessible avec le raccourci Ctrl + Shift + X

Ensuite, recherche et installe l’extension Remote - WSL.
remoteWsl
Une fois installée, ferme VS Code.

Maintenant, ouvre un terminal WSL (figure ci-dessous) et tape code.

Visual Studio Code s’ouvrira alors pour te permettre d’éditer les fichiers du répertoire courant de ton terminal WSL. Ce sera comme développer sur Linux. En bas à gauche de ta fenêtre VS Code, tu trouveras notamment un indicateur WSL qui confirme que tu utilises VS Code dans l’environnement Linux de ton WSL comme sur la figure ci-dessous. Voilà voilà !

Si tu veux en savoir plus sur le fonctionnement du développement dans WSL2 grâce à VS Code, je te recommande cet article sur le site officiel de VS Code : https://code.visualstudio.com/docs/remote/wsl

Étape 3 : Intégrer le support de Python à VS Code

Maintenant que la base de la recette est établie, il est temps de passer aux épices ! Et quand on est mordu de Python, il n’y a rien de plus piquant que lui.

A l’étape précédente, nous avons ouvert notre VS Code dans un environnement Linux grâce à WSL2. Cette configuration donne également accès à un terminal WSL2 à l’intérieur de VS Code.

Depuis ce terminal, installe Python. Je te conseille de l’installer avec pyenv qui a l’avantage d’octroyer la possibilité de gérer plusieurs versions de Python si besoin. Pour plus d’informations sur ce sujet, je recommande cet article : https://realpython.com/intro-to-pyenv/.

Une fois Python installé, rendez-vous à nouveau dans la boutique d’extensions de VS Code, cette fois-ci pour rechercher et installer l’extension Python afin d’intégrer le support du langage à VS Code.

extension_python

Et voilà, maintenant ton VS Code est paré pour faire du Python !

Étape 4 : Formatage automatique de code Python avec black

Python est un langage facile à apprendre mais aussi par essence très permissif dans sa syntaxe, vu qu’il est très haut niveau. Par conséquent, un développeur Python a beaucoup de latitude sur le formatage de son code, ce qui peut créer de nombreuses disparités dans le style de code au sein d’une équipe ou alors tout simplement conduire à du code “sale” et peu lisible.

Pour cette raison, il existe de nombreuses conventions régissant l’écriture du code Python (saut de lignes, longueur de lignes, convention de nommage, etc.). Mais elles sont tellement nombreuses qu’il est facile de perdre le fil. Toutefois, comme pour toutes les tâches répétitives, il existe un moyen de l’automatiser : Black..

Black permet de formater automatiquement son code selon différentes bonnes pratiques prônées par la Python Software Foundation. On obtient un code bien présenté, ergonomique, qui nous permet de déterminer rapidement où est chaque élément. C’est un booster d’efficacité, et cela rend de fiers services lorsque l’on fait du refactoring ou du débogage (même si on a tendance à le prendre pour acquis quand on a l’habitude de s’en servir).

On l’installe avec pip :
$ pip install black

On peut formater un fichier Python ou un répertoire tout entier avec la commande :
black <chemin_du_fichier/chemin_du_répertoire>

Considérons par exemple le code source suivant :

# in:

def very_important_function(template: str, *variables, file: os.PathLike, engine: str, header: bool = True, debug: bool = False):
    """Applies `variables` to the `template` and writes to `file`."""
    with open(file, 'w') as f:
        ...

Après application de black, on obtient le code suivant :

# out:

def very_important_function(
    template: str,
    *variables,
    file: os.PathLike,
    engine: str,
    header: bool = True,
    debug: bool = False,
):
    """Applies `variables` to the `template` and writes to `file`."""
    with open(file, "w") as f:
        ...

Les paramètres de la fonction sont présentés ligne par ligne car ils sont trop nombreux pour être mis sur la même ligne. De cette manière, le développeur relisant le code peut voir en un coup d'œil tous les paramètres nécessaires pour la fonction.

Pour en revenir à Visual Studio Code, j’ai intégré Black comme formateur dans l’éditeur. Grâce à cela, mes fichiers Python sont automatiquement formatés en respect des différentes conventions Python chaque fois que je les enregistre.

Si black est déjà installé comme indiqué précédemment, le procédé suivant permet d’en faire le formateur de ton code Python :

  1. Ouvrir les paramètres de VS Code : File > Preferences > Settings
  2. Rechercher “python formatting provider” et sélectionner black dans le menu déroulant
  3. Toujours dans les paramètres, rechercher "Format on save" et activer le formatage lorsque l'éditeur sauvegarde un fichier

Et voilà ! Black procédera au formatage de ton fichier tout seul comme un grand !

Si pour une raison ou une autre vous souhaitez sauvegarder sans formater, deux options s’offrent à vous :

  • Ouvrir la palette de commandes (Ctrl + Shift + P), tapez “Save without formatting” et sélectionner la commande correspondante comme sur la figure ci-dessous
    save_format
  • Ou alors, le raccourci : Ctrl + K Ctrl + Shift + S

Dessert : Quelques raccourcis clavier

Après un bon repas, rien de tel qu’un petit dessert pour bien tasser tout ça. J’espère que tu n’es pas encore plein 😉

Je vais te donner quelques raccourcis clavier PC pour gagner en productivité au quotidien sur VS Code :

Ctrl + Shift + P : Palette de commandes. Très pratique pour rechercher une fonctionnalité VS Code et l’utiliser
Ctrl + Shift + E : Rechercher un fichier dans le projet
Ctrl + : : Commenter / Décommenter
Ctrl + ù : Basculer vers le terminal
Ctrl + Shift + ù : Ouvrir un nouveau terminal
Ctrl + D : Sélectionner le mot sur lequel on se trouve
Ctrl + L : Sélectionner la ligne entière
Alt + ↑(↓) : Faire remonter (descendre) la ligne sur laquelle se trouve le curseur
Ctrl + Alt + K : Supprimer la ligne sur laquelle se trouve le curseur
Ctrl + ↖ : Aller au début du fichier
Ctrl + Fin : Aller à la fin du fichier
Ctrl + K W : Fermer toutes les fenêtres

Et ce n’est pas même pas le début 😉 Tu l'auras compris, le choix est varié dans le menu des raccourcis clavier.

Si tu veux avoir accès à la liste complète des raccourcis clavier sur VS Code ou même customiser les tiens, rendez-vous dans Files > Preferences > Keyboard shortcuts. Histoire de rester dans le thème, le raccourci c’est Ctrl + K Ctrl + S.

Si tu veux prendre possession au maximum de ton environnement de développement sur VS Code et l'utiliser avec un maximum d’efficacité, je te conseille d’apprendre un raccourci tous les jours. Au bout d’une semaine tu en connaîtras 7, au bout d’un mois, le nombre époustouflant de 30 😮

Take Away

VS Code est un outil assez complet et surtout très extensible. Bien configuré, il est d’une grande aide pour développer, versionner et même déboguer des applications d’une grande variété de langages de programmation, et si on lui demande gentillement, on peut même le faire depuis Linux alors qu’on a jamais quitté Windows. C’est ton allié, ton coéquipier et il est prêt à t’écouter 😉

J’espère que cet assortiment avec dessert a su régaler tes papilles. Et sur cette dernière métaphore culinaire qui a eu raison de mon estomac, je vais à la cuisine me faire à manger. A bientôt pour un nouvel article !

Sources :

Plus de publications

Comments are closed.