Travailler avec la fenêtre interactive Python dans Visual Studio

Visual Studio intègre une fenêtre REPL (read-evaluate-print loop) interactive pour chacun de vos environnements Python, qui améliore la boucle REPL que vous obtenez avec la commande python.exe sur la ligne de commande. La fenêtre interactive Python vous permet de saisir un code Python arbitraire et d’obtenir des résultats immédiats. Cette approche de programmation vous aide à étudier et à tester des API et des bibliothèques, mais aussi à développer de manière interactive du code opérationnel à inclure dans vos projets.

Capture d’écran de la fenêtre interactive de la boucle lire-évaluer-imprimer (REPL) de Python dans Visual Studio 2022.

Capture d’écran de la fenêtre interactive de la boucle lire-évaluer-imprimer (REPL) de Python dans Visual Studio.

Visual Studio propose de nombreux modes REPL Python au choix :

REPL Description Modification Débogage Images
Standard REPL par défaut communique directement avec Python Modification standard (multiligne, et autres) Oui, via $attach Non
Déboguer REPL par défaut communique avec le processus Python débogué Modification standard Débogage uniquement Non
IPython REPL qui communique avec le serveur principal IPython Commandes IPython, avantages de Pylab Non Oui, inline dans REPL
IPython sans Pylab REPL qui communique avec le serveur principal IPython IPython standard Non Oui, fenêtre distincte

Cet article décrit les modes REPL Standard et Débogage. Pour plus d’informations sur les modes IPython, consultez Utiliser IPython REPL.

Pour obtenir une procédure pas à pas détaillée avec des exemples, notamment les interactions avec l’éditeur Ctrl+Entrée, consultez Utiliser la fenêtre REPL interactive.

Prérequis

Visual Studio pour Mac n'est pas pris en charge. Pour plus d’informations, veuillez consulter la rubrique Qu’advient-il de Visual Studio pour Mac ? Visual Studio Code sur Windows, Mac et Linux fonctionne bien avec Python grâce aux extensions disponibles.

Ouvrir la fenêtre Interactive

Il existe plusieurs manières d’ouvrir la fenêtre interactive d’un environnement Python.

  • Dans la fenêtre Environnements Python :

    1. Sélectionnez Afficher>Autres fenêtre>Environnements Python pour ouvrir la fenêtre Environnements Python (ou utilisez la touche Ctrl+K>Ctrl+`du clavier).

    2. Dans la fenêtre Environnements Python, sélectionnez un environnement et basculez vers la page Vue d’ensemble de l’environnement.

    3. Dans la page Vue d’ensemble, sélectionnez l’option Ouvrir la fenêtre interactive.

    Capture d’écran montrant comment utiliser l’option « Ouvrir une fenêtre interactive » pour l’environnement sélectionné dans Visual Studio 2022.

    Capture d’écran montrant comment utiliser l’option « Ouvrir une fenêtre interactive » pour l’environnement sélectionné dans Visual Studio.

  • Dans le menu Affichage de l’outil Visual Studio, sélectionnez Autres fenêtres>Fenêtre interactive Python :

    Capture d’écran montrant comment utiliser l’option de menu Affichage Python Fenêtre interactive dans Visual Studio 2022.

    Capture d’écran montrant comment utiliser l’option de menu Affichage Python Fenêtre interactive dans Visual Studio.

  • Dans le menu Débogage de la barre d’outils Visual Studio, sélectionnez Exécuter <Projet | Fichier> dans Python Interactive ou utilisez le raccourci clavier Maj+Alt+F5. Vous pouvez ouvrir une fenêtre interactive pour le fichier de démarrage dans votre projet ou pour n’importe quel fichier autonome :

    Capture d’écran montrant comment utiliser l’option de menu Déboguer Exécuter Projet dans Python Interactive sous Visual Studio 2022.

    Capture d’écran montrant comment utiliser l’option de menu Déboguer Exécuter Projet dans Python Interactive sous Visual Studio.

Une autre option consiste à envoyer le code que vous écrivez dans l’éditeur Visual Studio dans la fenêtre interactive. Cette approche est décrite dans Envoyer du code à la fenêtre interactive.

Explorer les options de la fenêtre interactive

Vous pouvez contrôler différents aspects de la fenêtre interactive, tels que l’emplacement des fichiers de script de démarrage et le fonctionnement des touches de direction dans l’environnement de fenêtre. Pour accéder aux options, sélectionnez Outils>Options>Python>Fenêtre interactive :

Capture d’écran des options Fenêtres interactives Python dans Visual Studio.

Les options sont décrites en détail dans options Fenêtre interactive Python pour Visual Studio.

Utiliser la fenêtre interactive

Dans la fenêtre interactive, vous pouvez commencer à saisir du code ligne par ligne à l’invite de commandes PYTHON REPL >>>. Lorsque vous saisissez chaque ligne, Visual Studio exécute le code, notamment l’importation de modules nécessaires et la définition de variables.

Lorsque Visual Studio détecte qu’une ligne de code ne forme pas d’instruction complète, l’invite de code passe à la continuation REPL .... Cette invite indique que vous devez saisir davantage de lignes de code pour terminer le bloc d’instructions. Visual Studio attend la syntaxe de fermeture avant de tenter d’exécuter le bloc de code.

Lorsque vous définissez une instruction for, la première ligne de code démarre le bloc for et se termine par un signe deux-points. Le bloc peut se composer d’une ou plusieurs lignes de code qui définissent les tâches à effectuer pendant la boucle for. Lorsque vous sélectionnez Entrée sur une ligne vide, la fenêtre interactive ferme le bloc et Visual Studio exécute le code.

Comparaison REPL de ligne de commande

La fenêtre interactive améliore l’expérience utilisateur classique de l’environnement en ligne de commande REPL de Python en mettant automatiquement en retrait les instructions qui font partie d’une étendue environnante. Les deux approches vous permettent d’utiliser les touches de direction pour parcourir votre code saisi. La fenêtre interactive propose également des éléments multilignes, alors que la ligne de commande REPL ne propose que des lignes simples.

Métacommandes

La fenêtre Interactive prend également en charge plusieurs métacommandes. Toutes les métacommandes commencent par le symbole dollar $. Vous pouvez saisir $help pour afficher une liste de métacommandes et $help <command> pour obtenir des détails d’utilisation pour une commande spécifique. Le tableau suivant résume les métacommandes.

Métacommande Description
$$ Insérer un commentaire ; utile pour commenter le code dans votre session.
$cls, $clear Effacer le contenu de la fenêtre de l’éditeur en laissant intacts l’historique et le contexte d’exécution.
$help Affiche une liste de commandes ou une aide sur une commande spécifique.
$load Charger les commandes depuis un fichier et les exécuter jusqu’à la fin.
$mod Remplacer l’étendue actuelle par le nom de module spécifié.
$reset Réinitialiser l’environnement d’exécution à l’état initial, tout en conservant l’historique.
$wait Respecter un temps d’attente correspondant au minimum au nombre de millisecondes spécifié.

Vous pouvez également étendre les commandes avec des extensions Visual Studio en implémentant et en exportant la classe IInteractiveWindowCommand. Pour plus d’informations, consultez un exemple sur GitHub.

Modifier l’étendue de la fenêtre interactive

Par défaut, la fenêtre interactive d’un projet s’étend au fichier de démarrage du projet, comme si vous exécutiez le fichier du programme à partir de l’invite de commande. Pour un fichier autonome, la portée se limite à ce fichier. À tout moment pendant votre session REPL, vous pouvez utiliser la liste déroulante Étendue du module pour modifier l’étendue :

Capture d’écran montrant comment utiliser le menu déroulant « Étendue du module » pour modifier l’étendue dans la fenêtre interactive dans Visual Studio 2022.

Capture d’écran montrant comment utiliser le menu déroulant « Étendue du module » pour modifier l’étendue dans la fenêtre interactive.

Après avoir importé un module, par exemple import importlib, des options apparaissent dans le menu déroulant Étendue du module et vous permettent de basculer vers n’importe quelle étendue pour ce module. Un message dans la fenêtre interactive signale le passage à la nouvelle étendue, ce qui vous permet de suivre votre progression vers un état spécifique en consultant l’historique des commandes.

Si vous saisissez la commande dir() dans une étendue, Visual Studio affiche les identifiants valides dans cette étendue, y compris les noms de fonctions, les classes et les variables. L’image suivante montre le résultat de la commande dir() pour l’étendue importlib :

Capture d’écran montrant la sortie dans la fenêtre interactive de l’étendue importlib dans Visual Studio 2022.

Capture d’écran montrant la sortie dans la fenêtre interactive pour l’étendue importlib.

Envoyer du code dans la fenêtre interactive

En plus de travailler directement dans la fenêtre interactive, vous pouvez utiliser l’éditeur Visual Studio pour envoyer du code à la fenêtre. Cette commande est utile dans le cadre du développement de code itératif ou évolutionnaire, car elle permet notamment de tester votre code à mesure que vous le développez.

  1. Ouvrez un fichier de code dans l’éditeur Visual Studio, puis sélectionnez un ou plusieurs du code.

  2. Faites un clic droit sur le code sélectionné et sélectionnez Envoyer à Interactive (ou utilisez le raccourci clavier Ctrl+E, E).

    Capture d’écran montrant comment utiliser l’option de menu « Envoyer à Interactive » dans Visual Studio 2022.

    Capture d’écran montrant comment utiliser l’option de menu « Envoyer à Interactive » dans Visual Studio.

Modifier et exécuter du code

Après avoir envoyé du code à la fenêtre interactive et afficher la sortie, vous pouvez modifier le code et tester les modifications. Utilisez les flèches haut et bas pour faire défiler vers le code dans l’historique des commandes de la fenêtre. Modifiez le code et exécutez le code mis à jour en sélectionnant Ctrl+Entrée.

Lorsque vous apportez des modifications, si vous sélectionnez Entrée à la fin d’une instruction de code complète, Visual Studio exécute le code. Si l’instruction de code n’est pas terminée, Visual Studio insère une nouvelle ligne dans la fenêtre.

Enregistrer le code et supprimer des invites

Une fois que vous avez terminé votre travail sur le code, vous pouvez sélectionner le code mis à jour dans la fenêtre interactive et le coller dans votre fichier projet pour enregistrer votre travail.

Par défaut, lorsque vous collez du code de la fenêtre interactive dans l’éditeur, Visual Studio supprime l’invite de commande REPL >>> et l’invite de continuation .... Ce comportement vous permet de transférer facilement du code de la fenêtre vers l’éditeur.

Vous pouvez modifier le comportement avec l’option Coller et supprimer les invites REPL pour la fenêtre interactive :

  1. Sélectionnez Outils>Options pour ouvrir la boîte de dialogue Options.

  2. Développez la section Éditeur de texte>Python>Mise en forme.

  3. Désactivez l’option Coller et supprimer les invites REPL.

  1. Sélectionnez Outils>Options pour ouvrir la boîte de dialogue Options.

  2. Développez la section Éditeur de texte>Python>Avancée.

  3. Désactivez l’option Coller et supprimer les invites REPL.

Lorsque vous désactivez l’option, les caractères d’invite sont conservés dans le code collé à partir de la fenêtre. Pour plus d’informations, consultez Options – Options diverses.

Passer en revue le comportement IntelliSense

La fenêtre interactive inclut des suggestions IntelliSense basées sur les objets dynamiques, contrairement à l’éditeur de code dans lequel la fonctionnalité IntelliSense repose uniquement sur l’analyse du code source. Par conséquent, les suggestions IntelliSense dans la fenêtre interactive sont plus appropriées, en particulier pour le code généré dynamiquement. L’inconvénient est que les fonctions ayant des effets secondaires tels que l’enregistrement des messages peuvent affecter votre expérience de développement.

Vous pouvez ajuster le comportement IntelliSense via les options de saisie semi-automatique :

  1. Sélectionnez Outils>Options pour ouvrir la boîte de dialogue Options.

  2. Développez la section Python>Fenêtres interactives.

  3. Ajustez les paramètres dans le groupe Mode de saisie semi-automatique, tels que Ne jamais évaluer les expressions ou masquer les suggestions d’analyse statique.

Pour plus d’informations, consultez Options – Options de fenêtre interactives.