[[:outils:vscode:accueilvscode|{{ :iconemaison.jpg?nolink&25|Sommaire VSCode}}]] ===== IDE VSCode - Python interactif (IPython) et Jupyter ===== [Mise à jour le : 9/7/2022] **Sources** * **Site VSCode** * Working with the Python Interactive window * Working with Jupyter Notebooks in Visual Studio Code * **Documentation** Jupyter notebook * **Lectures connexes** * [[python:bases:accueilmodule|Les modules et packages]] * [[python:outils:anaconda|Outils - Installer et utiliser Anaconda avec VSCode]] {{ :outils:vscode:jupyter.png?nolink&100|}} ---- ==== 1. Présentation ==== **Jupyter** (anciennement IPython Notebook) permet de combiner facilement du texte **Markdown** et du **code source Python** exécutable sur un canevas appelé notebook. Visual Studio Code prend en charge l'utilisation de Jupyter Notebooks de manière native, ainsi que via des **fichiers de code Python**. Cette page décrit comment : - Travailler avec des **cellules de code** de type Jupyter dans un fichier Python. - Exécuter du code dans la **fenêtre interactive** Python. - Afficher, inspecter et filtrer les **variables** à l'aide de l'explorateur de variables et de la visionneuse de données. - **Convertir** les notebooks Jupyter en fichier de code Python. - **Déboguer** un notebook Jupyter. - **Exporter** un notebook Jupyter (créer un bloc-notes Jupyter à partir d'un fichier python). Pour utiliser les **blocs-notes Jupyter**, il faut activer un environnement **[[python:outils:anaconda|Anaconda]]** dans VSCode ou un autre environnement Python dans lequel le package Jupyter a été installé. //Exemple// {{ :outils:vscode:baseconda.png?nolink |}} {{ :outils:vscode:ipython.png?nolink&100|}} ==== 2. Jupyter via des fichiers de code Python ==== === 2.1 Création d'une cellule de code Jupyter dans un fichier Python=== Pour créer une cellule de code dans un fichier Python (**.py**), il suffit d'entrer le commentaire **#%%**. L'en-tête **Run Cell | Run Below | Debug Cell** apparaît après avoir entré ce commentaire. //Exemple// {{ :outils:vscode:ipython1.png?nolink |}} === 2.2 Exécution du code dans la fenêtre interactive === La sélection d'une commande **RUN** dans l'en-tête de la cellule démarre Jupyter, puis exécute la ou les cellules appropriées dans la fenêtre **Python Interactive** : //Exemple// {{ :outils:vscode:ipython2.png?nolink |}} Les cellules de code sont également exécutées à l'aide des combinaisons de touches **[Maj][Entrée]** ou **[Ctrl][Entrée]**. La fenêtre **Python Interactive** peut également être utilisée comme une console autonome avec du code arbitraire (avec ou sans cellules de code). Pour utiliser la fenêtre comme une console, l'ouvrir à partir de la palette de commandes (**Ctrl + Maj + P** ou **[F1]**) ou du menu contextuel, avec la commande :

Python: Run current file in Python Interactive Window

Les commandes sont alors entrées dans la ligne prévue à cet effet en bas de l'écran et exécutées par la combinaison des touches **[Maj][Entrée]**. //Ligne de commande de la fenêtre interactive// {{ :outils:vscode:ipython6.png?nolink |}} === 2.3 Débogage des cellules de code === Le débogage d'une cellule est activé en cliquant sur //Debug Cell// dans l'en-tête de la cellule. //Exemple// {{ :outils:vscode:ipython7.png?nolink |}} * Description de la **barre d'outils**. {{ :outils:vscode:prepapy18.png?nolink |}} | {{ :outils:vscode:bcontinuer.png?nolink&25 |}} | Continuer (**F5**) | | {{ :outils:vscode:barrepaspas.png?nolink&25 }} | Pas à pas principal (**F10**) | | {{ :outils:vscode:pbpaspasd.png?nolink&25 }} | Pas à pas détaillé (**F11**) | | {{ :outils:vscode:pbpaspass.png?nolink&25 }} | Pas à pas sortant (**Maj+F11**) | | {{ :outils:vscode:bredemarrer.png?nolink&25 }} | Redémarrer (**Ctrl+Maj+F5**) | | {{ :outils:vscode:bdeconnecter.png?nolink&25 |}} | Déconnecter | === 2.4. L'explorateur de variables et la visionneuse de données === Il est possible d'**afficher**, d'**inspecter** et de **filtrer** les **variables de la session** Jupyter dans la fenêtre //Python Interactive//.
Pour cela, cliquer sur l'icône {{:outils:vscode:ipython3a.png?nolink&30|}} dans la fenêtre //Python Interactive//. //Exemple// {{ :outils:vscode:ipython3b.png?nolink |}} === 2.5. Convertir un notebook Jupyter en fichier de code Python === Lorsqu'un environnement avec Jupyter est installé, on peut ouvrir un fichier de bloc-notes Jupyter (**.ipynb**) dans VSCode, puis le **convertir en code Python** (**.py**) en cliquant sur l'icône ci-dessous. {{ :outils:vscode:ipython4.png?nolink |}} Une fois le fichier converti, on peut exécuter le code comme avec n'importe quel autre fichier Python et également utiliser le débogueur VSCode. On dispose ainsi de la coloration syntaxique, de la complétion de code, etc. et de toutes les fonctionnalités de débogage (pas à pas, affichage des variables, etc.) L'**ouverture** et le **débogage** des **blocs-notes** dans **VSCode** sont un moyen pratique pour rechercher et résoudre les bogues, ce qui est difficile à faire directement dans un bloc-notes Jupyter. === 2.6 Exporter les cellules dans un notebook Jupyter ==== On peut également utiliser l'une des commandes ci-dessous pour **exporter** le contenu d'un **fichier Python** (**.py**) **vers un bloc-notes Jupyter** (**.ipynb**). L'accès à ces commandes se fait à partir de la palette de commandes (**Ctrl + Maj + P** ou **[F1]**). * **Python: Export Current Python File as Jupyter Notebook** : crée un bloc-notes Jupyter à partir du contenu du fichier actuel, en utilisant les délimiteurs **# %%** et **# %% [markdown]** pour spécifier leurs types de cellules respectifs. * **Python: Export Current Python File and Output as Jupyter Notebook** : crée un bloc-notes Jupyter à partir du contenu du fichier actuel et inclut la sortie des cellules de code. * **Python: Export Python Interactive window as Jupyter Notebook** : crée un bloc-notes Jupyter à partir du contenu de la fenêtre //Python Interactive//. {{ :outils:vscode:latex.png?nolink&100|}} === 2.7 LateX dans une cellule Markdown d'un fichier Python ==== * **Sources** * Wikibooks LaTeX/Mathematics * Synthaxe et exemples d'équations sur la documentation Jupyter notebook L'analyseur **Markdown** inclus dans le bloc-notes Jupyter est compatible avec MathJax. * **Installation de MathJax** > Installer Mathjax dans un environnement [[python:outils:anaconda|Anaconda]] avec conda ou dans Python avec pip Pour afficher des équations dans la fenêtre **Python Interactive**, préciser **%%latex** dans une cellule Markdown. //Exemple// {{ :outils:vscode:latex1.png?nolink |}} //Résultat dans la fenêtre Python Interactive// {{ :outils:vscode:latex2.png?nolink |}} {{ :outils:vscode:jupyter.png?nolink&100|}} ==== 3.Jupyter natif ==== === 3.1 Créer ou ouvrir un bloc-notes === On peut créer un fichier Jupyter dans **VSCode** en lui donnant l'extension .ipynb. //Exemple// {{ :outils:vscode:ipython8.png?nolink |}} Du **code source malveillant** pouvant être contenu dans un bloc-notes, VSCode demande si l'on fait confiance à celui que l'on essaie d'ouvrir. Si c'est le cas : cliquer sur **Trust** dans la boîte de dialogue. === 3.2 Enregistrer le bloc-notes === Pour enregistrer le bloc-notes en cours, cliquer sur la disquette dans la barre d'outils. {{ :outils:vscode:ipython9.png?nolink |}} === 3.3 Déboguer un notebook Jupyter ==== Le débogueur Visual Studio Code permet de **parcourir le code**, de **définir des points d'arrêt**, d'examiner l'état des **variables** et d'analyser les problèmes. L'utilisation du débogueur est utile pour chercher et corriger les erreurs dans le code du bloc-notes. **Activer** un environnement Python dans lequel Jupyter est installé. Cet environnement doit contenir les paquets **debugpy** et **ipykernel**. - **Installations** \\ - Installer **debugpy** dans un environnement [[python:outils:anaconda|Anaconda]] avec conda ou dans Python avec pip \\ - Installer **ipykernel** dans un environnement [[python:outils:anaconda|Anaconda]] avec conda ou dans Python avec pip - **Importer** le notebook Jupyter (.ipynb).{{ :outils:vscode:ipython5b.png?nolink |}} - **Utiliser** l'icône : * {{:outils:vscode:ipython5c.png?nolink|}} pour exécuter le code d'une cellule. * {{:outils:vscode:ipython5d.png?nolink|}} pour exécuter le code d'une cellule **pas à pas** et **visualiser les variables**. //Exemple//{{ :outils:vscode:ipython5.png?nolink |}} === 3.4 Exporter un bloc-notes Jupyter === Pour exporter un bloc-notes Jupyter sous la forme d'un **fichier Python** (.py), **PDF** ou **HTML**, cliquer sur l'icône de conversion dans la barre d'outils.{{ :outils:vscode:ipython10.png?nolink |}} {{ :outils:vscode:latex.png?nolink&100|}} === 3.5 LateX dans Jupyter === Voir le paragraphe 2.7 //Exemple// {{ :outils:vscode:latex3.png?nolink |}}