Problèmes avec JupyterLab et les notebooks#
Le noyau et le client d’un notebook, le test de JupyterLab et son lancement depuis l’invite de commandes d’Anaconda sont dans JupyterLab ; la configuration des notebooks dans VS Code, dans VS Code : notebooks.
Problèmes#
J1. Le noyau voulu n’est pas dans la liste#
- Ce qu’on voit
Dans VS Code, le bouton « Select Kernel » ne propose pas
baseni l’environnement du TD. Dans JupyterLab, la liste des noyaux ne contient que « Python 3 ».- Cause
Dans VS Code, le premier niveau de la liste ne montre que les noyaux déjà employés ; les environnements sont sous « Python Environments… ». Cette liste vient de l’extension Python : si elle ne trouve pas Anaconda (V6), les notebooks ne le trouvent pas non plus. Dans JupyterLab, « Python 3 » est le noyau de l’environnement qui a lancé JupyterLab, en général
base; les autres environnements n’y apparaissent pas.- Remède
Dans VS Code : « Select Another Kernel… », puis « Python Environments… ». Si la liste est vide, attendre dix secondes et rouvrir. Si l’environnement n’apparaît nulle part : V6, puisque Jupyter reprend la liste de l’extension Python (Ce que l’extension Jupyter en fait). Dans JupyterLab : lancer
jupyter labdepuis l’environnement voulu (conda activate <env>d’abord, dans l’invite de commandes d’Anaconda).
J2. « Running cells with … requires the ipykernel package »#
- Ce qu’on voit
Ce message dans VS Code, avec un bouton Install.
- Cause
Le noyau est le paquet
ipykernel, installé dans l’environnement qui exécute le notebook.basel’a ; un environnement créé au TD 1h ne l’a que si on l’y a installé.- Remède
Si l’environnement est celui du TD, cliquer Install, ou taper dans l’invite de commandes d’Anaconda
conda install -n <env> -c conda-forge ipykernel. Si le message concernebase, l’installation échouera (A8): le noyau choisi n’est pas celui qu’on croit, rouvrir la liste (J1).
J3. Le noyau ne démarre pas, ou s’arrête#
- Ce qu’on voit
La cellule reste sur
[*]. Ou « Kernel died », « Failed to start the Kernel », « timed out waiting for kernel to be ready ».- Cause
Sur un poste lent, le premier démarrage d’un noyau dépasse parfois le délai prévu. Sinon, l’environnement choisi n’existe plus (A11), ou une cellule précédente a arrêté le noyau (boucle qui ne se termine pas, mémoire pleine).
- Vérifier
Dans VS Code, panneau Output (
Ctrl+Maj+U), liste déroulante « Jupyter » : lire les lignes qui suiventipykernel_launcher.- Remède
Cliquer Restart et réessayer une fois. Si le message cite un chemin qui n’existe pas, rechoisir le noyau (J1). Une cellule qui ne finit pas s’arrête par le bouton Interrupt, puis Restart.
J4. Le notebook n’exécute pas le Python attendu#
- Ce qu’on voit
import sys; print(sys.executable)dans une cellule affiche un autre chemin que l’invite de commandes d’Anaconda. Unimportéchoue dans le notebook et réussit dans le terminal.- Cause
Le noyau du notebook se choisit à part, indépendamment de l’interpréteur des fichiers
.pyet du terminal (V8). C’est le sujet du TD 1i.- Remède
Bouton du noyau en haut à droite, choisir l’environnement voulu, puis Restart et « Run All ». Les cellules s’exécutent dans l’ordre où on les lance, qui peut différer de l’ordre où elles sont affichées : après un changement de noyau, tout relancer depuis le début.
J5. JupyterLab n’ouvre aucune page#
- Ce qu’on voit
Une fenêtre noire affiche des lignes, dont une adresse
http://localhost:8888/lab?token=…, mais aucun onglet ne s’ouvre, ou une page vide.- Cause
JupyterLab est un serveur qui s’exécute sur le poste. Il demande au navigateur par défaut de s’ouvrir sur son adresse, et sur certains postes aucun navigateur n’est défini par défaut.
- Remède
Copier l’adresse complète, avec le
token, de la fenêtre noire dans la barre d’adresse de Firefox. Ne pas fermer la fenêtre noire tant qu’on travaille : c’est le serveur.Ctrl+Cdans cette fenêtre l’arrête.