#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.