Noyau Python absent ou incorrect dans JupyterLab 4.6 → vérifiez d’abord l’environnement Python du service, puis installez et enregistrez ipykernel depuis l’environnement voulu. Ne réinstallez pas JupyterLab avant d’avoir contrôlé la liste des noyaux et l’interpréteur réellement exécuté.
Cet article s’adresse aux étudiants dont la liste des noyaux est vide ou ne contient pas l’environnement attendu.
Les chercheurs qui ont changé de version Python ou d’environnement virtuel peuvent vérifier si leur Notebook utilise encore l’ancien interpréteur.
Les personnes chargées de maintenir des Mac d’analyse en laboratoire y trouveront une méthode de diagnostic et une trace de validation à conserver.
JupyterLab et le noyau Python : des composants distincts
Une page JupyterLab peut s’ouvrir même si le noyau Python d’un projet n’est pas disponible. L’interface, le service qui la fournit et le programme Python exécuté par le Notebook sont liés, mais ne désignent pas le même environnement. Le noyau choisi dans le Notebook est un processus lancé à partir d’une définition appelée kernelspec.
Il faut donc distinguer plusieurs états :
- le service JupyterLab démarre et affiche l’interface ;
- le service dispose d’une liste de noyaux enregistrés ;
- un Notebook sélectionne l’un de ces noyaux ;
- le processus du noyau démarre avec le Python attendu ;
- le code trouve les dépendances nécessaires à l’analyse.
Une réussite à une étape ne confirme pas automatiquement les suivantes. En particulier, saisir python dans un terminal et obtenir une version ne signifie pas que JupyterLab a découvert ou enregistré cet interpréteur. La documentation de JupyterLab sur les documents et les noyaux décrit la sélection et l’utilisation d’un noyau depuis un Notebook.
Avant toute modification, notez la manière dont le service a été démarré, la version affichée et l’environnement du projet concerné. La documentation stable de JupyterLab indique la version 4.6.5 au moment de la vérification éditoriale ; la page officielle des versions et modifications permet de contrôler que cette information n’a pas changé avant publication.
Repérer la portée du problème avant de modifier l’environnement
Le premier diagnostic consiste à déterminer si aucun noyau n’est visible ou si seul un environnement précis manque. Cette distinction évite de réinstaller des composants qui fonctionnent déjà.
| Ce qui apparaît dans l’interface | Indice à vérifier | Action prioritaire |
|---|---|---|
| Aucun noyau Python n’est proposé | Liste de noyaux du service actif | Exécuter jupyter kernelspec list dans le contexte du service |
| D’autres noyaux apparaissent, mais pas celui du projet | Environnement et chemin de Python du projet | Installer puis enregistrer ipykernel depuis cet environnement |
| Le noyau est proposé, mais refuse de démarrer | Chemin de lancement indiqué par le kernelspec | Vérifier si l’environnement visé existe encore et si son chemin est valide |
| Le Notebook démarre, mais les imports échouent | Interpréteur actif et emplacement des paquets | Contrôler sys.executable et les dépendances du projet |
Une kernelspec contient notamment une commande de lancement (argv), un nom d’affichage (display_name) et une indication de langage (language). Ces champs aident à comprendre ce que Jupyter tente de lancer ; le libellé visible dans le menu ne prouve pas que la commande vise le bon Python. Les références de Jupyter Client sur les noyaux et les kernelspecs détaillent cette structure.
Comparez les environnements avant d’agir :
| Point de comparaison | Python du service JupyterLab | Python du projet |
|---|---|---|
| Rôle | Fournir l’interface et gérer la session | Exécuter les cellules du Notebook |
| Ce qu’il faut vérifier | Commande de démarrage et noyaux visibles | Chemin de Python, ipykernel et paquets du projet |
| Symptôme fréquent | L’interface fonctionne, mais la liste est incomplète | L’environnement existe, mais n’est pas enregistré |
| Correction à privilégier | Identifier le bon service et sa liste | Enregistrer cet environnement comme noyau |
Pour examiner les définitions connues du service, utilisez :
jupyter kernelspec list
La commande liste les noyaux accessibles dans le contexte où elle est exécutée. Si JupyterLab a été démarré depuis un autre environnement ou une autre session, ne supposez pas que la commande lancée dans un terminal séparé observe exactement la même configuration. Notez son résultat, puis comparez-le à l’environnement depuis lequel le service a été démarré. La documentation de configuration du serveur Jupyter aide à identifier les réglages du service lorsque le lancement est géré par une configuration.
À retenir : un Python accessible dans le terminal n’est pas nécessairement un noyau enregistré. La vérification utile porte sur la liste des kernelspecs associée au service, puis sur le chemin de l’interpréteur qu’elle lance.
Enregistrer le noyau de la bonne Python virtuelle
Si l’environnement du projet existe et que seul son noyau manque, installez ipykernel dans cet environnement. L’installation doit être exécutée avec le Python que le Notebook devra utiliser, et non avec un interpréteur choisi par défaut dans un autre terminal.
Procédez dans cet ordre :
- Repérez le chemin de Python associé au projet et activez son environnement virtuel selon la méthode déjà utilisée par l’équipe.
- Vérifiez que la commande
pythonde cette session désigne bien l’interpréteur du projet. - Installez
ipykerneldans cet environnement si le module n’y est pas disponible. - Enregistrez le noyau en utilisant le même interpréteur.
- Actualisez ou relancez l’interface, puis vérifiez que le noyau apparaît dans le Notebook.
- Ouvrez une cellule et contrôlez que l’interpréteur exécuté correspond au projet.
La documentation officielle d’IPython sur l’installation d’un noyau fournit la commande de référence. Une fois l’environnement activé, la forme générale est :
python -m ipykernel install --user --name nom_environnement --display-name "Python — projet"
Remplacez les deux noms par des valeurs explicites adaptées au projet. --name identifie le noyau enregistré ; --display-name contrôle l’étiquette présentée dans l’interface. Choisissez un libellé compréhensible pour les membres du laboratoire, mais ne vous fiez pas à ce texte pour identifier l’interpréteur. Après l’enregistrement, relancez jupyter kernelspec list et conservez le résultat.
Un environnement virtuel isole les paquets installés de ceux d’autres environnements ; sa configuration et son répertoire Python sont propres à son emplacement. La documentation Python consacrée à venv explique ce fonctionnement. Si le dossier de l’environnement a été déplacé ou supprimé après l’enregistrement, un kernelspec peut donc continuer à désigner un chemin qui n’est plus utilisable.
Pannes de lancement et erreurs d’interpréteur
Un noyau qui figure dans le menu peut encore échouer au démarrage. Dans ce cas, le problème n’est plus simplement « noyau absent ». Examinez la définition de noyau indiquée par jupyter kernelspec list, notamment la commande de lancement et le chemin de l’environnement. Si un projet a été déplacé, recréé ou nettoyé, l’ancien kernelspec peut pointer vers un exécutable inexistant.
Pour un diagnostic reproductible, évitez d’abord de réinstaller globalement Python ou de remplacer les dépendances du projet. Ces opérations peuvent masquer l’origine de la panne et rendre les résultats difficiles à comparer. Préférez une vérification minimale :
- le noyau choisi dans le Notebook est-il celui du projet ?
- le chemin de Python indiqué par le processus existe-t-il ?
- le noyau fonctionne-t-il avec une cellule simple ?
- les paquets requis sont-ils installés dans ce même environnement ?
- le service et l’environnement du noyau se trouvent-ils sur l’hôte attendu ?
Lorsque le Notebook démarre mais importe une mauvaise version d’un paquet, distinguez le démarrage du noyau de la validité scientifique de l’environnement. Exécutez dans une cellule :
import sys
print(sys.executable)
print(sys.version)
Comparez le chemin retourné à celui documenté pour le projet. Puis vérifiez les dépendances nécessaires à l’analyse avec les outils déjà employés dans l’environnement. Un nom tel que « Python — projet » peut être attribué à plusieurs interpréteurs : le chemin affiché par sys.executable est un indice plus fiable.
Si l’ancien Notebook doit désormais utiliser un nouvel environnement, sélectionnez le noyau nouvellement enregistré dans le Notebook, puis faites cette vérification avant de relancer les cellules de calcul. Le fichier du Notebook ne recrée pas à lui seul l’environnement Python et ne garantit pas que ses bibliothèques soient installées. Pour des travaux impliquant des données sensibles, effectuez les essais avec un extrait non sensible et suivez les règles de stockage de l’équipe.
Questions fréquentes sur les noyaux de JupyterLab
L’interface s’ouvre, mais aucun noyau Python n’apparaît
Exécutez jupyter kernelspec list dans le contexte du service actif. Si la liste ne contient aucun noyau adapté, cela ne signifie pas que Python est absent de la machine : cela indique que l’environnement recherché n’est pas disponible comme noyau pour ce service. Installez ipykernel dans l’environnement visé, enregistrez-le avec son interpréteur, puis vérifiez de nouveau la liste.
ipykernel est installé, mais l’environnement reste invisible
Vérifiez d’abord que l’installation a été faite avec le Python de l’environnement attendu. Une installation dans l’environnement du serveur, ou dans un autre Python, ne l’ajoute pas automatiquement au projet. Activez l’environnement concerné, enregistrez son noyau avec python -m ipykernel install, puis contrôlez que le service utilisé par JupyterLab voit ce kernelspec.
Le Notebook démarre, mais comment confirmer son interpréteur ?
Dans une cellule, affichez sys.executable et sys.version. Comparez le chemin obtenu à celui du projet ; vérifiez ensuite qu’une dépendance importante est importée depuis l’environnement prévu. Le nom montré dans le menu de JupyterLab est modifiable et peut être trompeur. Si le chemin n’est pas le bon, sélectionnez le noyau correct au lieu de modifier les paquets au hasard.
Un ancien Notebook doit utiliser un nouvel environnement
Enregistrez d’abord le nouvel environnement comme noyau et sélectionnez-le dans le Notebook. Contrôlez le chemin de l’interpréteur, puis testez une cellule courte et une dépendance importante avant de relancer l’analyse complète. Si l’environnement d’origine a été déplacé, ne réutilisez pas son ancienne définition sans vérifier son chemin de lancement : créez ou enregistrez le noyau correspondant à l’environnement réellement disponible.
Liste de vérification pour valider la réparation
Cochez chaque point avant de reprendre une analyse ou un travail de cours :
- [ ] La version et la commande de démarrage de JupyterLab sont consignées.
- [ ]
jupyter kernelspec listmontre le noyau attendu dans le contexte pertinent. - [ ] Le Notebook utilise le noyau du projet, pas seulement un noyau portant un nom similaire.
- [ ]
sys.executableindique le chemin de Python attendu. - [ ] Les dépendances nécessaires au projet sont présentes dans cet environnement.
- [ ] Une cellule représentative s’exécute sans erreur avant le lancement complet.
- [ ] Le nom du noyau, l’environnement utilisé et les étapes de vérification sont consignés pour faciliter la reproduction.
Pour une équipe de recherche, cette trace est particulièrement utile lorsqu’un Notebook est partagé. Elle permet de séparer une erreur de code d’un écart d’environnement, et d’expliquer pourquoi un résultat ne se reproduit pas sur le poste d’un autre membre. La validation reste propre au projet : une cellule réussie ne garantit pas à elle seule la compatibilité de toutes les dépendances ou de toute la chaîne d’analyse.
Quand un Mac distant peut compléter le laboratoire
La réparation d’un noyau ne nécessite pas automatiquement un nouveau Mac. Si l’environnement du projet fonctionne déjà sur la machine disponible, conservez cette configuration et documentez-la. De même, la location d’un Mac ne corrige pas un kernelspec qui pointe vers un chemin périmé, un paquet manquant ou un mauvais interpréteur.
La question se pose plutôt lorsque le projet doit être vérifié dans macOS et que le laboratoire ne dispose pas d’un Mac exploitable. Dans ce cas, un Mac distant peut compléter des postes Linux ou Windows pour tester un environnement propre à macOS, sans remplacer les ressources existantes. Avant de choisir cette voie, vérifiez les modalités d’accès proposées, les conditions de transfert des données et les règles de sécurité applicables aux travaux de recherche. Les exemples d’usage d’un Mac à distance et les guides disponibles permettent d’évaluer les cas d’usage et les limites avant de déplacer un projet.
Les postes déjà disponibles évitent un coût de location, mais peuvent ne pas fournir l’environnement macOS requis ; ils peuvent aussi demander des ajustements de dépendances et ne reproduisent pas toujours le comportement à vérifier. À l’inverse, un Mac loué apporte un environnement macOS à évaluer sans achat immédiat, mais ne remplace ni la validation des kernelspecs, ni les contrôles de confidentialité, ni une machine locale si le projet exige un accès physique. Si une validation macOS ponctuelle est réellement nécessaire, consultez les modalités de HireVM et vérifiez que l’accès proposé convient à votre projet avant d’y transférer des données.
Questions fréquentes
JupyterLab s’ouvre, mais aucun noyau Python n’apparaît : par où commencer ?
Vérifiez d’abord quel service JupyterLab a été lancé et quels noyaux ce service voit avec la commande « jupyter kernelspec list ». Le fait qu’une commande Python fonctionne dans un terminal ne prouve pas que cette installation est enregistrée auprès du service. Si la liste est vide ou ne contient pas l’environnement voulu, installez ipykernel dans cet environnement et enregistrez-le depuis son interpréteur.
Pourquoi mon environnement virtuel avec ipykernel reste-t-il absent de la liste ?
ipykernel peut être présent dans un environnement différent de celui que vous pensez utiliser, ou le noyau peut ne pas avoir été enregistré pour le service actif. Activez l’environnement concerné, vérifiez le chemin de Python, puis exécutez la commande d’installation du noyau avec cet interpréteur. Contrôlez ensuite la liste des kernelspecs depuis le contexte qui sert réellement JupyterLab.
Comment savoir quel Python exécute réellement mon Notebook ?
Dans une cellule, affichez sys.executable et sys.version, puis comparez le chemin obtenu avec celui de l’environnement attendu. Examinez également l’emplacement des dépendances nécessaires au projet. Le nom visible dans le sélecteur de noyau est une étiquette personnalisable : il ne garantit pas, à lui seul, que le Notebook utilise le bon interpréteur.
Comment faire reprendre à un ancien Notebook un nouvel environnement Python ?
Enregistrez le nouvel environnement comme noyau, puis sélectionnez-le dans le Notebook et vérifiez l’interpréteur depuis une cellule. Le fichier du Notebook ne change pas automatiquement d’environnement quand Python est remplacé ou déplacé. Avant de relancer l’analyse, contrôlez les dépendances et exécutez une petite étape représentative afin de repérer une incompatibilité sans modifier les résultats d’origine.
Préparez votre environnement Python sur un Mac à distance
Avec HireVM, accédez à un Mac physique Apple Silicon dédié pour installer et configurer JupyterLab selon les besoins de votre projet.
