web-dev-qa-db-fra.com

Réinitialiser le noyau ipython

Je me demandais s'il existe un moyen de redémarrer le noyau ipython sans le fermer, comme la fonction de redémarrage du noyau qui existe dans le cahier. J'ai essayé %reset mais cela ne semble pas effacer les importations.

30
greole

Même s'il serait pratique si %reset efface l'espace de noms et le cache pour les importations (comme dans le bloc-notes), vous pouvez recharger explicitement un module précédemment importé en utilisant importlib.reload dans python3.4 ou imp.reload dans python3.0-3.3 (et si nécessaire réinitialiser le noyau dans un deuxième temps).

9
greole

Je pourrais redémarrer le noyau, mais certaines sessions de console prennent plus de temps pour se reconnecter. Notebook détecte instantanément le redémarrage du noyau.

ipykernel.ipkernel.IPythonKernel class a une méthode do_shutdown avec le paramètre restart qui est défini par défaut sur False

Obtenez une référence à ipykernel.kernelapp.IPKernelApp qui contient une référence au noyau et appelez do_shutdown du noyau en transmettant True

import IPython
app = IPython.Application.instance()
app.kernel.do_shutdown(True)  

Comment ai-je testé?

$ #start notebook
$ jupyter notebook

$ #connect to existing kernel
$ jupyter console --existing
3
Nizam Mohamed

Dans la console qt, vous pouvez appuyer sur ctrl-

1
Seekheart

Si vous avez installé Spyder avec anaconda, ouvrez la fenêtre Spyder.

Puis Consoles (barre de menu) -> Redémarrez Consoles. 

ou vous pouvez utiliser CTRL +. qui est un raccourci clavier pour redémarrer la console. 

1
Jayesh Baviskar

IPython Qt-console a une fonctionnalité de réinitialisation du noyau. Vous pouvez l'utiliser si vous utilisez IPython Qt. OMI, c'est mieux que d'utiliser à partir de Shell.

 enter image description here

0
gokul_uf