Spyder avec un noyau distant
J’aime spyder et je deteste toute forme de codage dans un navigateur web (trop lent, pâteux, inconfortable). Je décris donc comment lancer un spyder sur la machine locale tout faisant les calculs sur la machine distante.
Lancer le noyau
À faire sur a machine de calcul:
ipython kernel
(Si vous voulez un environnement spécial faites d’abord le bon conda activate ou autre)
Cela va afficher plein de choses et se terminer par
–existing kernel-22929.json
copier le fichier kernel-22929.json vers la machine locale
(suivant les installations il peut être sous
/var/run/user/numero/jupyter
ou dans .local
Pour trouver le mieux est de chercher
cd
find . -name kernel-22929.json
vous dira si le fichier est dans votre home.
Une fois que vous aurez trouvé, il sera toujours dans le même répertoire.
pour le copier, faire depuis la machine locale:
scp pc:./.local/share/jupyter/runtime/kernel-23027.json /tmp/kpc.json
(notez que pc: signifie la machine distante)
Le fichier est mainteant sur la machine locale à la position /tmp/kpc.json.
Se connecter au noyau:
Dans spyder cliquer sur la roue en haut à droite de la partie interactive (console python) -> connecter à un noyau existant
Une fenêtre s’ouvre
entrez /tmp/kpc.json pour « information de connexion »
et cochez la case « Noyau distant »
Pour « Nom d’hôte » entrez simplement « pc » (magie du .ssh/config)
-> OK
Vous voilà avec une console python dont les calculs sont sur la machine de calcul . Très utile pendant le prototypage. Par contre il ne faut pas oublier que l’éditeur de texte de spyder édite des scripts locaux. Une fois un script prêt, il faudra le transférer vers la machine de calcul pour l’exécuter en ligne de commande par exemple.
L’informatique ne serait pas l’informatique si cette méthode vient de ne pas marcher chez moi, peut-être mon spyder est-il trop vieux… Bref la théorie est bonne. Suivant la version de spyder il faudra remplir différemment la fenêtre.