ipythonのすべての警告を非表示にする


300

ipythonセッションのスクリーンキャストを作成する必要がありwarnings.warnます。ビューアの混乱を避けるために、さまざまなパッケージからの呼び出しによって発行されるすべての警告を無効にしたいと思います。このような警告をすべて自動的に無効にするようにipythonrcファイルを構成する方法はありますか?


3
できる場合は、回答を受け入れてから、他の質問をチェックして、受け入れ可能な回答があるかどうかを確認してください。
Dan D.

回答:


716

私は最終的にそれを理解しました。場所:

import warnings
warnings.filterwarnings('ignore')

~/.ipython/profile_default/startup/disable-warnings.py。他の誰かが同じ問題に遭遇した場合に備えて、この質問と回答は記録のために残しておきます。

多くの場合、警告を一度表示すると便利です。これは次のように設定できます。

warnings.filterwarnings(action='once')

8
IPythonノートブックの警告にも機能します。素敵な修正:)
キース・ヒュージット2013年

6
@FrozenFlame、それを「デフォルト」に戻します参照:docs.python.org/2/library/warnings.html
AZhao

36
これをノートブックで実行して、特定のノートブックの(特定の)警告のみを抑制することもできます
Vasco

何か奇妙なことが起こり、Kaggleノートブックで作業しましwarnings.filterwarnings('ignore')た。スクリプトの最初に設定しても、警告が表示されます。TPUアクセラレータを使用しているという事実と関係があるとすれば、この場合TPUは特定の振る舞いをするのでしょうか…。理解できません。
Catalina Chircu

57

セルで次のコードを実行して、ピンク色のボックスの警告を非表示にします。

from IPython.display import HTML
HTML('''<script>
code_show_err=false; 
function code_toggle_err() {
 if (code_show_err){
 $('div.output_stderr').hide();
 } else {
 $('div.output_stderr').show();
 }
 code_show_err = !code_show_err
} 
$( document ).ready(code_toggle_err);
</script>
To toggle on/off output_stderr, click <a href="javascript:code_toggle_err()">here</a>.''')

2
反対投票にもかかわらず、受け入れられた回答と比較して切り替えるのが簡単であるため、それは有用なヒントであるとまだ信じています。
matthiash 2017

このソリューションが大好きです。外部モジュールに保存し、インポートに追加しました。
アダム

3
これはjupyter labでは機能しません(可能であればクールですが)
Ajasja

1
出来た !受け入れられた答えは私を助けませんでした。ありがとう@matthiash
ゴンザロガルシア

4

受け入れられた回答はJupyterでは機能しません(少なくとも一部のライブラリを使用している場合)。

ここでのJavascriptソリューションは、すでに表示されている警告のみを非表示にし、将来表示される警告は非表示にします。

JupyterとJupyterLabで警告を非表示/再表示するために、基本的にcssを切り替えて警告を非表示/再表示する次のスクリプトを作成しました。

%%javascript
(function(on) {
const e=$( "<a>Setup failed</a>" );
const ns="js_jupyter_suppress_warnings";
var cssrules=$("#"+ns);
if(!cssrules.length) cssrules = $("<style id='"+ns+"' type='text/css'>div.output_stderr { } </style>").appendTo("head");
e.click(function() {
    var s='Showing';  
    cssrules.empty()
    if(on) {
        s='Hiding';
        cssrules.append("div.output_stderr, div[data-mime-type*='.stderr'] { display:none; }");
    }
    e.text(s+' warnings (click to toggle)');
    on=!on;
}).click();
$(element).append(e);
})(true);

「Javescriptエラー:$が定義されていません」というエラーが表示される
ベン

@Benはブラウザでjupyterを使用していますか?VSCodeのノートブックが$(jQuery)をロードしない
robert

はい、そうです(Google Chrome)
ベン

魅力的な作品!ありがとうございました!
ダグラスデーリー

私にとってもうまくいきません。ベンと同じエラーが発生します(JupyterLabを使用しています)。
Tobias Bergkvist

2

jupyter labの場合、これは機能するはずです(@Alasja)

from IPython.display import HTML
HTML('''<script>
var code_show_err = false; 
var code_toggle_err = function() {
 var stderrNodes = document.querySelectorAll('[data-mime-type="application/vnd.jupyter.stderr"]')
 var stderr = Array.from(stderrNodes)
 if (code_show_err){
     stderr.forEach(ele => ele.style.display = 'block');
 } else {
     stderr.forEach(ele => ele.style.display = 'none');
 }
 code_show_err = !code_show_err
} 
document.addEventListener('DOMContentLoaded', code_toggle_err);
</script>
To toggle on/off output_stderr, click <a onclick="javascript:code_toggle_err()">here</a>.''')

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.