Retour à l'accueil [[python:accueil|Python pour les historiens]] ===== JupyterLab git extension ===== Documentation concernant //JupyterLab git extension//: * [[https://github.com/jupyterlab/jupyterlab-git|jupyterlab / jupyterlab-git]] * Tutoriel [[https://annefou.github.io/jupyter_publish/02-git/index.html|JupyterLab git extension]] * Un tutoriel très intéressant sur Jupyter Lab dont la partie 3 concerne GitHub: [[http://jakevdp.github.io/blog/2017/03/03/reproducible-data-analysis-in-jupyter/|Reproducible Data Analysis in Jupyter]] **/!\ Avant de faire le tutoriel, réfléchissez si vous devez créer un nouveau environnement virtuel, si vous avez déjà d'autres projets en cours.** Il est donc préférable de créer un environnement en ligne de commande. Ouvrez un terminal et saisissez : conda create --name python=. Dans le cadre de ce tutoriel, la version de python pouvant être utilisée est le 3.6 Il n'est pas recommandé, dans le cadre de cet atelier, de créer un environnement avec le logiciel Anaconda, car cela pose problème par la suite. [suggestion:] conda create --name py37_gitlab python=3.7 jupyterlab=1.2.7 jupyterlab-git Une fois que vous avez activé votre environnement dans Ananconda, pensez à installer **JupyterLab**. Jupyter Notebook sera automatiquement installé avec. Une fois JupyterLab installé, lancez le, il s'affichera sur votre navigateur. Les paquets pour conda: * [[https://anaconda.org/conda-forge/jupyterlab-git|jupyterlab-git]] ([[https://github.com/jupyterlab/jupyterlab-git|documentation sur GitHub]]) * [[https://anaconda.org/krinsman/jupyterlab-github|jupyterlab-github]] ([[https://github.com/jupyterlab/jupyterlab-github|Documentation sur Github]]) ====Etapes suivies dans Linux Mint 19.3 Tricia==== [Pierre 2020-04-02] Création de l'environnement en indiquant seulement la version python conda create --name py37_gitlab python=3.7 activation de l'environnement conda activate py37_gitlab installation de jupyterlab 1.2.7 conda install jupyterlab=1.2.7 installation de nodejs (qui n'est pas installé avec jupyterlab 1.2.7 d'où problème ensuite pour gérer les extensions) : conda install -c conda-forge nodejs installation de jupyterlab-git : conda install -c conda-forge jupyterlab-git lancer jupyterlab : jupyter lab * Ensuite, suivre les indications qui suivent pour les extensions jupyterlab-git (accepter la proposition d'installation du "Server companion" jupyterlab_git (avec un underscore), puis jupyterlab-github. :!: Après avoir cliqué sur l'icône "puzzle" (pour les extensions), il faut attendre un peu avant que la liste des extensions s'affiche. :!: Mais il reste un problème : "nbdime-jupyterlab@2.0.0" is not compatible with the current JupyterLab . J'ai donc essayé de remplacer la version de nbdime.2.0.0 par la nbdime.1.1.0. D'abord on désactive nbdime : jupyter nbextension disable --py nbdime Puis désinstallation : jupyter labextension uninstall nbdime-jupyterlab Installation de la version 1.1.0 jupyter labextension enable nbdime@1.1.0 jupyter lab build jupyter labextension install nbdime-jupyterlab Après avoir fermé puis relancé Jupyterlab le problème semble avoir disparu. En tout cas, il est possible d'accéder au carnet jupyter **import_csv.ipynb** évoqué plus loin. ==== Plugin jupyterlab-github ==== Sur l'interface JupyterLab, à gauche vous avez une barre de menu. Cliquez sur l'icône Puzzle "**Extension Manager**" (gestionnaire des plugins). Dans la barre de recherche, cherchez "**github**". Le plugin qui nous intéresse est celui-ci : {{:wiki:pluginjupyterlabgithub.png|}} Cliquez "Install" et validez le popup qui s'affiche. Une fois l'extension installée, JupyterLab vous demandera de "Rebuild". Cliquez **Rebuild** dans la barre bleue qui est apparue au dessus du gestionnaire des plugins. Après quelques instants, un popup qui confirme le succès du Rebuild s'affiche, cliquez sur **Reload**. Observez maintenant le menu à gauche : si vous voyez une icône avec un chat {{:wiki:logogithub.png?30|}} : l'installation du plugin est un succès. Cliquez dessus. Ce plugin vous demande d'entrer un nom d'utilisateur Github afin d'accéder à ses dépôts. Dans le cadre de l'atelier Données FAIR (FAIR Data), nous pouvons par exemple utiliser **atterebf** comme nom d'utilisateur. Une liste de dépôt github s'affiche, sélectionnez **atelier_arhn**, puis **import_csv_xls**, et enfin le carnet jupyter **import_csv.ipynb** (qui est en lecture seule). ==== Plugin jupyterlab-git ==== Pour les utilisateurs les plus avancés, maîtrisant le GIT, ce plugin peut vous être utile pour versionner vos travaux. Fermez toutes instances de JupyterLab. Ouvrez un terminal, activez votre environnement virtuel (conda activate ) et installez le package jupyterlab-git: **pip install --upgrade jupyterlab-git** Lancez JupyterLab. Un message vous demandera d'installer les extensions jupyterlab-git et nbdime-jupyter. Acceptez. Patientez un moment le temps que le Rebuild se fasse. Observez les onglets : l'icône de Git apparaît, allez-y dessus. A la base, il n'y a aucun dépôt git reconnu. Cliquez Find a repository. Il vous menera en fait à l'onglet Explorateur de dossiers. Vous avez la aussi une nouvelle icône Git à droite de la petite barre de menus en haut qui vous proposera de Cloner un dépôt (Clone a repository), ou bien allez dans un dossier qui vous intéresse avec l'explorateur de dossiers, positionnez vous dans le dossier concerné, allez sur "Git" dans le menu horizontal en haut, choisissez "Init", un popup vous demande si vous êtes sûr de transformer le dossier en dossier git : confirmez. Attention, en fonction du volume du dossier, le traitement peut être long, privilégiez un dossier avec peu de fichiers. Revenez sur l'onglet Git : vous verrez qu'il est possible de gérer les fichers. Les fichiers peuvent être "Untracked" (non suivis), "Changed" (modifiés mais non admis dans le prochain commit) ou "Staged" (admis dans le prochain commit). Plus bas dans la colonne, vous pouvez écrire le message du commit et envoyer le commit sur votre branche actuelle. Plus haut vous pouvez aussi constater "Current Repository", "Current Branch" qui vous permettra de gérer les branches.