Как ограничить количество выходных строк в заданной ячейке записной книжки Ipython?

#ipython-notebook #jupyter-notebook

#jupyter-записная книжка

Вопрос:

Иногда мои записные книжки Ipython выходят из строя, потому что я оставил print инструкцию в большом цикле или в рекурсивной функции. Ядро показывает, busy а stop кнопка обычно не отвечает. В конце концов Chrome спрашивает меня, хочу ли я закрыть страницу или подождать.

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

Ответ №1:

Вы можете подавить вывод с помощью этой команды:

 ‘;’ at the end of a line 
  

Возможно, создайте в своем цикле условие для подавления вывода после определенного порога.

Ответ №2:

Для тех, кто еще натыкается:

Если вы хотите видеть часть выходных данных, а не полностью подавлять выходные данные, существует расширение, называемое limit-output.

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

 from notebook.services.config import ConfigManager
cm = ConfigManager().update('notebook', {'limit_output': 10})
  

Примечание: вам нужно будет запустить блок кода, а затем полностью перезапустить сервер notebook (не только ядро), чтобы изменения вступили в силу.

Результаты на jupyter версии 4.0.6 под управлением ядра Python 2.7.12

 for i in range(0,100):
    print i

0
1
2
3
4

limit_output extension: Maximum message size exceeded
  

Комментарии:

1. есть ли способ сделать это только для ячейки, которую я собираюсь оценить? или такого рода вещи действительно требуют перезапуска записной книжки, и нет способа установить его на основе «для каждой ячейки»?

2. Из документов, the limit can also be set for an individual cell, using the cell's cell.metadata.limit_output.

3. и как вы получаете доступ к этому значению и изменяете его в веб-интерфейсе Jupyter???

4. в качестве альтернативы я могу спросить: как мне изменить cell.metadata.limit_output, используя код, который я могу поместить в саму ячейку?

5. Этот ответ не работает для vscode.