Por lo general, si se pierde la conexión de red o se cierra el navegador web mientras se ejecutan las celdas, tengo que volver a ejecutarlas desde el principio.

Para lidiar con esto, convertí .ipynb a .py y usé 'nohup python .py'

¿Hay alguna manera de evitar que las células en funcionamiento se detengan como nohup?

Gracias de antemano.

2
Crispy13 10 may. 2019 a las 14:35

4 respuestas

La mejor respuesta

De acuerdo con https://github.com/jupyter/notebook/issues/2446

Todo lo que ya se esté ejecutando en el cuaderno seguirá ejecutándose, y el núcleo para el que comenzó se mantendrá ejecutándose, por lo que no perderá sus variables. Sin embargo, cualquier salida producida mientras el notebook no está abierto en una pestaña del navegador se pierde; no hay una manera fácil de cambiar esto hasta que tengamos un servidor portátil capaz de rastrear el estado del documento, que ha estado en el plan por años.

Cuando cierra la pestaña, no significa que el proceso haya finalizado, sigue ejecutando el fondo sin salida.

No estoy seguro de si hay alguna forma de lograr esto ahora, pero descubrí que si está utilizando jupyterhub, puede continuar ejecutando ipython una pestaña terminal , cuando la pestaña se cerró o cambiar a otro dispositivo (cerrar la página web anterior), todos los resultados reservados. ¿Quizás screen o tmux es mejor?

0
Jay 10 may. 2019 a las 12:32

El código aún se ejecuta, solo se pierde la salida / error estándar. por ejemplo, si tengo una celda que contiene:

from time import sleep
sleep(5)
42

Y guardo el cuaderno, ejecuto esta celda, cierro la pestaña del navegador, espero 5 segundos y luego vuelvo a abrir la pestaña, puedo ejecutar:

Out

(esta es la variable donde terminan los resultados de las celdas en ejecución) Veo:

{1: 42}

Es decir, el código se ejecutó hasta su finalización

0
Sam Mason 10 may. 2019 a las 13:38

Para mi caso:

jupyter --version
4.4.0
jupyter notebook --version
5.7.4

Ejecuto un jupyter notebook en un servidor y me conecto a él usando mi computadora portátil. Incluso si la conexión se pierde o el navegador está cerrado, las celdas en ejecución no se detendrán. El proceso de descarga de archivos que se ejecuta en la terminal tampoco se verá afectado.

¿Puedo saber más sobre tu situación?

¿Cómo qué versión usa y dónde ejecuta su notebook jupyter, en local o en un servidor?

0
WOET 10 may. 2019 a las 11:57

Puede comenzar su proceso en un hilo diferente.

def network_call():
    # Do something here

threading.Thread(target=network_call).start()

move_ahead()
0
Kshitij Saxena 10 may. 2019 a las 12:01