509 Stimmen

Alle Warnungen in IPython ausblenden

Ich muss einen Screencast einer IPython-Sitzung erstellen, und um die Betrachter nicht zu verwirren, möchte ich alle Warnungen deaktivieren, die von warnings.warn Anrufe aus verschiedenen Paketen. Gibt es eine Möglichkeit zur Konfiguration der ipythonrc Datei, um alle diese Warnungen automatisch zu deaktivieren?

1220voto

astrofrog Punkte 29613

Ort:

import warnings
warnings.filterwarnings('ignore')

innerhalb ~/.ipython/profile_default/startup/disable-warnings.py .

Oftmals ist es sinnvoll, eine Warnung einmal zu sehen. Dies kann eingestellt werden durch:

warnings.filterwarnings(action='once')

65voto

matthiash Punkte 2745

Ich blende die Warnungen in den rosa Kästchen aus, indem ich den folgenden Code in einer Zelle ausführe:

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>.''')

14voto

robert Punkte 938

Die akzeptierte Antwort funktioniert in Jupyter nicht (zumindest bei Verwendung einiger Bibliotheken).

Die JavaScript-Lösungen hier verbergen nur Warnungen, die bereits angezeigt werden, nicht aber solche, die in Zukunft angezeigt werden.

So blenden Sie Warnungen in Jupyter aus und ein JupyterLab Ich habe das folgende Skript geschrieben, das im Wesentlichen CSS umschaltet, um Warnungen ein- und auszublenden.

%%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);

5voto

ottowg Punkte 31

Für JupyterLab sollte dies funktionieren (@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>.''')

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X