2014-07-05 98 views
5

有時我的Ipython筆記本會崩潰,因爲我在大循環或遞歸函數中留下了print語句。內核顯示busystop按鈕通常沒有響應。最終Chrome會問我是否想要殺死該頁面或等待。如何限制Ipython筆記本給定單元格中的輸出行數?

有沒有辦法限制給定單元格中輸出線的數量?或者以任何其他方式來避免這個問題?

回答

1

可以使用this command抑制輸出:

‘;’ at the end of a line 

在循環也許創造條件,以抑制輸出過去某個閾值。

0

這最近也引起了一些問題。我寫了一個類來爲打印功能添加一些保護。我只是把它扔在github上:staggerprint on github

我會將Usage部分放在筆記本的頂部,以防止這些類型的崩潰。如果我發現如何從筆記本電腦級別改變這種行爲,我會添加另一個答案,但現在必須做!

0

爲別人穿過絆:

如果你想看到一些輸出,而不是完全抑制輸出,有一個名爲limit-outputextension

您必須在第一個鏈接中按照擴展的安裝說明進行操作。然後,我跑到下面的代碼每個單元更新字符輸出的最大數量:

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

注:你需要運行的代碼塊,然後完全重新啓動筆記本服務器(不只是內核)以使更改生效。

結果上運行的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

是有辦法只是我對評估細胞做jupyter v4.0.6?或者這種類型的東西真的需要重新啓動筆記本電腦,並且沒有辦法將其設置爲「每個單元」? –

+0

從文檔中,還可以使用單元格的cell.metadata.limit_output爲單個單元格設置限制。 – user2699

相關問題