有时我的Ipython笔记本会崩溃,因为我在一个大循环或一个递归函数中留下了print
语句。内核显示busy
,stop
按钮通常没有响应。最终Chrome会问我是否要杀死该页面或等待。
有没有办法限制给定单元格中的输出行数?或者任何其他方法来避免这个问题?
答案 0 :(得分:3)
答案 1 :(得分:1)
这也引起了我最近的一些问题。我写了一个类来为print函数添加一些保护。我只是把它扔在github上:staggerprint on github。
我会将“使用”部分放在笔记本的顶部以防止这些类型的崩溃。如果我发现如何从笔记本级别改变这种行为,我将添加另一个答案,但现在必须这样做!
答案 2 :(得分:1)
对于任何绊倒的人:
如果你想看到一些输出而不是完全抑制输出,那么extension会被称为limit-output。
您必须按照第一个链接上的扩展程序的安装说明进行操作。然后我运行以下代码来更新每个单元格输出的最大字符数:
from notebook.services.config import ConfigManager
cm = ConfigManager().update('notebook', {'limit_output': 10})
注意:您需要运行代码块,然后完全重启笔记本服务器(而不仅仅是内核)才能使更改生效。
运行Python 2.7.12内核的jupyter v4.0.6上的结果
for i in range(0,100):
print i
0
1
2
3
4
limit_output extension: Maximum message size exceeded