Jupyter, как запустить клетки на фоне? - PullRequest
0 голосов
/ 10 мая 2019

Обычно, если сетевое соединение потеряно или веб-браузер закрыт во время работы ячеек, мне нужно снова запустить ячейки с самого начала.

Чтобы разобраться с этим, я преобразовал .ipynb в .py и использовал'nohup python .py'

Есть ли способ предотвратить остановку запущенных ячеек как nohup?

Заранее спасибо.

Ответы [ 4 ]

0 голосов
/ 10 мая 2019

код все еще выполняется, просто теряется стандартный вывод / ошибка.например, если у меня есть ячейка, содержащая:

from time import sleep
sleep(5)
42

, и я сохраняю записную книжку, запускаю эту ячейку, закрываю вкладку браузера, жду 5 секунд и затем снова открываю вкладку, я могу запустить:

Out

(это переменная, в которой заканчиваются результаты работы ячеек) Я вижу:

{1: 42}

т.е. код выполняется до завершения

0 голосов
/ 10 мая 2019

Вы можете начать свой процесс в другом потоке.

def network_call():
    # Do something here

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

move_ahead()
0 голосов
/ 10 мая 2019

Согласно https://github.com/jupyter/notebook/issues/2446

Все, что уже запущено в ноутбуке, будет продолжать работать, и ядро, для которого оно запущено, будет работать - так что оно не потеряет ваши переменные. Однако любые выходные данные, когда ноутбук не открыт на вкладке браузера, теряются; Нелегкий способ изменить это, пока у нас нет ноутбука, способного отслеживать состояние документа, которое планировалось целую вечность.

Когда вы закрываете вкладку, это не означает, что процесс завершен, он продолжает работать в фоновом режиме без вывода.

Я не уверен, есть ли способ достичь этого сейчас, но я обнаружил, что если вы используете jupyterhub , вы можете продолжить запускать ipython a терминал tab, когда вкладка была закрыта или переключено на другое устройство (закрыть предыдущую веб-страницу), все выходные данные зарезервированы. Может быть screen или tmux лучше?

0 голосов
/ 10 мая 2019

Для моего случая:

jupyter --version
4.4.0
jupyter notebook --version
5.7.4

Я запускаю ноутбук Jupyter на сервере и подключаюсь к нему с помощью своего ноутбука. Даже если соединение потеряно или браузер закрыт, запущенные ячейки не будут остановлены. Процесс загрузки файлов, запущенный в терминале, также не будет затронут.

Могу ли я узнать больше о вашей ситуации?

Например, какую версию вы используете и где вы используете ноутбук Jupyter, локальный или на сервере?

...