source

ipython의 모든 경고 숨기기

factcode 2022. 9. 24. 09:56
반응형

ipython의 모든 경고 숨기기

ipython 세션의 스크린캐스트를 생성해야 하며 시청자에게 혼란을 주지 않기 위해 에서 발생하는 모든 경고를 비활성화합니다.warnings.warn다른 패키지로부터의 콜.이러한 경고를 모두 자동으로 해제하도록 ipythonrc 파일을 구성하는 방법이 있습니까?

난 결국 알아냈다.장소:

import warnings
warnings.filterwarnings('ignore')

안에서.~/.ipython/profile_default/startup/disable-warnings.py혹시라도 같은 문제에 직면할 경우를 대비해서 이 문답은 남겨두겠습니다.

경고를 한 번 보는 것은 매우 유용합니다.이것은, 다음과 같이 설정할 수 있습니다.

warnings.filterwarnings(action='once')

다음 코드를 셀에서 실행하여 분홍색 상자에 있는 경고를 숨깁니다.

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

허용되는 답변은 주피터에서는 작동하지 않습니다(적어도 일부 라이브러리를 사용하는 경우).

여기의 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);

주피터 랩에서는 이것이 유효합니다(@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>.''')

언급URL : https://stackoverflow.com/questions/9031783/hide-all-warnings-in-ipython

반응형