python:outils:jupyter

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
python:outils:jupyter [2021/07/08 17:38] – [2. Jupyter] philpython:outils:jupyter [2022/08/25 08:57] (Version actuelle) – [Outils - Notebook Jupyter, binder et Google Colab] phil
Ligne 1: Ligne 1:
 +{{ :suivant.png?nolink&30|}} {{ :retour.png?nolink&30|}} [[:python:accueilpython|{{ :iconemaison.jpg?nolink&30|Sommaire Python et microPython}}]]
  
 +===== Outils - Notebook Jupyter, binder et Google Colab =====
 +{{ :micropython:python.png?nolink&110|}}{{ :python:outils:jupyter.png?nolink&60|}}{{ :python:outils:binder.png?nolink&80|}}{{ :python:outils:co.png?nolink&80|}}
 +[Mise à jour le : 25/8/2022]
 +
 +  * **Sources**
 +    * Site <html><a href="https://jupyter.org/" target="_blank">jupyter.org</a></html>
 +    * Jupyter dans l'extension Python de l'<html><a href="https://code.visualstudio.com/docs/python/jupyter-support" target="_blank">IDE VSCode</a></html>
 +    * Introduction aux Notebooks IPython...<html><a href="http://faccanoni.univ-tln.fr/user/enseignements/20182019/M62-CM1.pdf" target="_blank">pdf</a></html>
 +
 +  * **Ressources** 
 +    * <html><a href="https://lecluseo.scenari-community.org/jupyter_web/co/g_nbgrader.html" target="_blank">Evaluer</a> dans Jupyter</html>
 +    * <html><a href="https://ledatascientist.com/google-colab-le-guide-ultime/" target="_blank">Google Colab : Le Guide Ultime</a></html>
 +    * **Real Python**
 +      * <html><a href="https://realpython.com/jupyter-notebook-introduction/" target="_blank">Jupyter Notebook: An Introduction</a></html>
 +      * <html><a href="https://www.wrighters.io/use-ipywidgets-with-jupyter-notebooks/" target="_blank">How to use ipywidgets to make your Jupyter notebook interactive</a></html>
 +
 +==== 1. Introduction ====
 +Jupyter (anciennement IPython Notebook) est un projet open-source qui vous permet de combiner facilement du texte Markdown et du code source Python exécutable sur un canevas appelé notebook.
 +
 +==== 2. Jupyter ====
 +
 +=== 2.1 Lancer une session ===
 +Seulon l'installation réalisée, on pourra utiliser une des deux solutions suivantes :
 +
 +  * **Solution 1**
 +    * Ouvrir une invite de commandes à partir de la barre de recherche{{ :python:outils:cmd.png?nolink&300 |}}
 +    * Entrer le texte //"jupyter notebook"//{{ :python:outils:jupyternotebook.png?nolink |}}
 +    * Le **bureau** Jupyter s'ouvre dans un navigateur
 +
 +  * **Solution 2**
 +    * Entrer "//jupyter//" dans la barre de recherche et sélectionner :{{ :python:outils:jupy1.png?nolink |}}
 +    * Le **bureau** Jupyter s'ouvre dans un navigateur{{ :python:outils:jupy2.png?nolink |}}
 +
 +=== 2.2 Ouvrir un notebook ===
 +
 +<note>Un notebook est un fichier avec l'extension **.ipynb**</note>
 + 
 +Se placer dans le répertoire où se trouve le notebook et cliquer dessus pour l'ouvrir.
 +
 +//Exemple// : notebook //PageRank// situé dans //Desktop/jupyter_pagerank//
 +{{ :python:outils:jupy3.png?nolink |}}
 +{{ :python:outils:jupy4.png?nolink |}}
 +
 +=== 2.3 Evaluer une cellule de code ===
 +<note>Une fois sélectionnée, une cellules de code est évaluée par la combinaison des touches **//Maj//** et **//Entrée//** ou en cliquant sur {{:python:outils:jupy7.png?nolink|}}.</note>
 +
 +// Exemple //
 +{{ :python:outils:jupy5a.png?nolink |}}
 +{{ :python:outils:jupy5b.png?nolink |}}
 +{{ :python:outils:jupy6.png?nolink |}}
 +
 +Si le code que l'on évalue dépend de codes situés en amont, ceux-ci doivent être évalués en respectant l'ordre d'exécution. Dans l'exemple ci-dessus, deux cellules ont été évaluées avant la boucle.
 +
 +<note warning>Si le code que l'on évalue dépend de codes situés en amont, ceux-ci doivent être évalués en respectant l'ordre d'exécution. \\ Dans l'exemple ci-dessus, deux cellules ont été évaluées avant la boucle **for...** .Le numéro entre crochets donne l'ordre dans lequel les cellules ont été évaluées. \\ **Attention a bien évaluer les cellules dans l'ordre**.</note>
 +
 +===2.4 Réinitialiser l'interpréteur ===
 +<note>Sélectionner //**Kernel**// -> **//Restart & Clear Output//**.</note>
 +
 +===2.5 Sauvegarder dans différents formats ===
 +<note tip>**//File//** -> **//Download as//** -> (Notebook, Python etc.)</note>
 +
 +=== 2.6 Installer des packages ===
 +  * **Ressource**
 +    * <html><a href="https://jakevdp.github.io/blog/2017/12/05/installing-python-packages-from-jupyter/" target="_blank">Installing Python Packages from a Jupyter Notebook</a></html>
 +
 +  * **jupyter et canvas**
 +    * **Ressource** : <html><a href="https://nbviewer.jupyter.org/gist/ericECmorlaix/2fea7082e3c9bde40d0d19d6cbcbec10" target="_blank">ipycanvas </a></html> une bibliothèque légère, rapide et stable exposant l' API Canvas du navigateur à IPython
 +==== 3. binder - Transformer un dépôt git en notebooks ====
 +  * **Sources**
 +    * Site <html><a href="https://mybinder.org/" target="_blank">mybinder.org</a></html>
 +    * Tutoriel <html><a href="https://github.com/alan-turing-institute/the-turing-way/blob/master/workshops/boost-research-reproducibility-binder/workshop-presentations/zero-to-binder-python.md" target="_blank">From Zero to Binder in Python!</a></html>
 +    * <html><a href="https://mybinder.readthedocs.io/en/latest/index.html" target="_blank">Documentation</a></html>
 +<note>**binder** offre une solution de service en ligne gratuit de Notebook interactifs sans avoir à installer un serveur JupyterHub local et ouvert sur l’extérieur.</note>
 +
 +=== 3.1 Mise en oeuvre ===
 +  - Créer  un jupyter et ses dépendances
 +  - Installer l'ensemble des fichiers dans un dépôt [[outils:git|Github]]
 +  - Ouvrir <html><a href="https://mybinder.org/" target="_blank">mybinder.org</a></html> et placer le nom ou URL du référentiel GitHub. {{ :python:outils:mybinder.png?nolink |}}
 +  - mybinder construit le notebook dans le navigateur 
 +
 +=== 3.2 Référentiel de classeur ===
 +  * **Sources**
 +    * Mise en oeuvre d'un <html><a href="https://mybinder.readthedocs.io/en/latest/sample_repos.html" target="_blank">environnement Python avec requirements.txt</a></html>. Sources sur <html><a href="https://github.com/binder-examples/requirements" target="_blank">Github</a></html>.
 +
 +<note important>Lorsque des bibliothèques doivent être installées par binder, il est nécessaire d'inclure un fichier //**requirement.txt**// dans le projet.</note>
 +
 +  * **Outil**
 +    * <html><a href="https://github.com/jazzband/pip-tools/" target="_blank">pip-tools</a></html>
 +
 +  * **Opérations à réaliser**
 +    - **Installer** pip-tools dans le répertoire du notebook
 +    - **Créer** un fichier texte //requirements.in// dans lequel on placera la liste des bibliothèques à installer
 +    - **Générer** le fichier //requirements.txt// avec pip-tools
 +
 +{{ :python:outils:colab.jpg?nolink|}}
 +====5. Google Colab ====
 +  * Source : <html><a href="https://colab.research.google.com/notebooks/intro.ipynb#scrollTo=GJBs_flRovLc" target="_blank">Bienvenue dans Colaboratory</a></html>
 +
 +<note tip>**Colaboratory**, souvent raccourci en "**Colab**", permet d'écrire et d'exécuter du **code Python dans un navigateur**. \\ Il offre les avantages suivants : 
 +  * Aucune configuration requise
 +  * Accès gratuit aux GPU
 +  * Partage facile
 +</note>
 +
 +=== 5.1 Ajouter Colab dans son compte Google Drive ===
 +{{ :python:outils:colab1.png?nolink&100|}}
 +Pour utiliser Google colab il suffit d'aller sur son **compte google drive**, de cliquer sur **nouveau** et sur "**plus**"  afin de choisir "**Colaboratory**". \\ 
 +Si l'option "Colaboratory" n'est pas présente, cliquer sur "Associer plus d'applications", rechercher "Colaboratory" et cliquer sur connecter.
 +
 +{{ :python:outils:colab2.png?nolink |}}
 +
 +{{ :python:outils:opencolab.png?nolink&100|}}
 +=== 5.2 Open in Colab dans Chrome  ===
 +<note>Open in Colab est une extension de navigateur qui permet d'ouvrir rapidement les blocs-notes Jupyter hébergés sur GitHub dans Google Colab.</note>
 +
 +  * Installer l'application **Open in Colab** dans le navigateur à partir de **chrome web store** pour qu'elle soit disponible dans {{:python:outils:applichrome.png?nolink|}}.
 +{{ :python:outils:chromews.png?nolink&400 |}}
 +  * Lancer Open in Colab en cliquant sur l'icône présente dans {{:python:outils:applichrome.png?nolink|}}. La fenêtre ci-dessous s'ouvre.
 +{{ :python:outils:colab4.png?nolink |}}
 +
 +=== 5.3 Créer un notebook à partir d'un dépôt Github ===
 +  * Sélectionner **Github** dans **Open in Colab** et entrer le lien vers le dépôt.
 +  * Sélectionner le fichier à convertir et cliquer sur nouveau notebook.{{ :python:outils:notebookgithub.png?nolink |}}
 +
 +==== Plus loin ====
 +  * <html><a href="https://labs.quansight.org/blog/2021/07/pyflyby-improving-efficiency-of-jupyter-interactive-sessions/" target="_blank">Pyflyby : Améliorer l'efficacité des sessions interactives Jupyter</a></html>