Empecé a usar IPython Notebook y lo estoy disfrutando. A veces, escribo código con errores que requiere una gran cantidad de memoria o tiene un bucle infinito. Encuentro que la opción "interrumpir kernel" es lenta o poco confiable, ya veces tengo que reiniciar el kernel, perdiendo todo lo que hay en la memoria.
A veces también escribo scripts que hacen que OS X se quede sin memoria y tengo que reiniciar el sistema. No estoy 100% seguro, pero cuando escribí errores como este antes y ejecuté Python en la terminal, generalmente puedo CTRL+ Cmis scripts.
Estoy usando la distribución Anaconda del portátil IPython con Firefox en Mac OS X.
python
ipython
jupyter-notebook
wwwilliam
fuente
fuente
Respuestas:
Podría estar equivocado, pero estoy bastante seguro de que el botón "interrumpir kernel" simplemente envía una señal SIGINT al código que estás ejecutando actualmente (esta idea es apoyada por el comentario de Fernando aquí ), que es lo mismo que presionar CTRL + C sería suficiente. Algunos procesos dentro de Python manejan SIGINT de manera más abrupta que otros.
Si necesita desesperadamente detener algo que se está ejecutando en iPython Notebook e inició iPython Notebook desde una terminal, puede presionar CTRL + C dos veces en esa terminal para interrumpir todo el servidor de iPython Notebook. Esto detendrá iPython Notebook por completo, lo que significa que no será posible reiniciar o guardar su trabajo, por lo que obviamente esta no es una gran solución (debe presionar CTRL + C dos veces porque es una función de seguridad para que las personas no hacerlo por accidente). En caso de emergencia, sin embargo, generalmente mata el proceso más rápidamente que el botón "interrumpir kernel".
fuente
Kernel
menú desplegable o desde la página del servidor del cuaderno (elShutdown
botón a la derecha del nombre del cuaderno infractor).jupyter-console
? II / control-c no funciona. Y no hay otro atajo para reiniciar el kernel.Puede presionar
I
dos veces para interrumpir el kernel.Esto solo funciona si estás en el modo de comando. Si aún no está habilitado, presione Escpara habilitarlo.
fuente
A continuación, se muestran accesos directos para el cuaderno IPython.
Ctrl-m i
interrumpe el kernel. (es decir, la única letra i despuésCtrl-m
)Según esta respuesta,
I
dos veces también funciona.fuente
Para agregar a lo anterior: Si la interrupción no funciona, puede reiniciar el kernel.
Vaya al menú desplegable del kernel >> reiniciar >> reiniciar y borrar la salida. Por lo general, esto funciona. Si esto aún no funciona, elimine el kernel en la terminal (o administrador de tareas) y luego reinicie.
La interrupción no funciona bien para todos los procesos. Especialmente tengo este problema al usar el kernel R.
fuente
ACTUALIZACIÓN : Convertí mi solución en un script de Python independiente.
Esta solución me ha salvado más de una vez. Ojalá otros lo encuentren útil. Esta secuencia de comandos de Python encontrará cualquier kernel de jupyter que utilice más de la
cpu_threshold
CPU y le pide al usuario que envíe unSIGINT
al kernel (KeyboardInterrupt). Seguirá enviandoSIGINT
hasta que el uso de la CPU del kernel sea inferiorcpu_threshold
. Si hay varios núcleos que se comportan mal, se le pedirá al usuario que interrumpa cada uno de ellos (ordenados por el uso de CPU más alto al más bajo). Un gran agradecimiento a gcbeltramini por escribir código para encontrar el nombre de un kernel de jupyter usando la api de jupyter. Este script se probó en MACOS con python3 y requiere un cuaderno jupyter, solicitudes, json y psutil.Coloque el script en su directorio de inicio y luego el uso se ve así:
Código de secuencia de comandos a continuación:
fuente