提问人:astrofrog 提问时间:1/27/2012 最后编辑:Peter Mortensenastrofrog 更新时间:7/22/2023 访问量:774835
隐藏 IPython 中的所有警告
Hide all warnings in IPython
问:
我需要生成 IPython 会话的截屏视频,并且为了避免混淆查看者,我想禁用来自不同包的调用发出的所有警告。有没有办法将 ipythonrc 文件配置为自动禁用所有此类警告?warnings.warn
答:
1230赞
astrofrog
1/27/2012
#1
地方:
import warnings
warnings.filterwarnings('ignore')
里面。~/.ipython/profile_default/startup/disable-warnings.py
很多时候,看到一次警告是很有用的。这可以通过以下方式设置:
warnings.filterwarnings(action='once')
评论
15赞
Keith Hughitt
11/30/2013
也适用于 IPython 笔记本警告。不错的修复:)
7赞
AZhao
7/14/2015
@FrozenFlame,将其改回“默认” 请参见: docs.python.org/2/library/warnings.html
48赞
Vasco
11/11/2015
您也可以在笔记本中执行此操作,以便仅禁止显示一个特定笔记本中的(某些)警告
2赞
Catalina Chircu
3/5/2020
奇怪的事情发生在我身上,我在 Kaggle 笔记本上工作,即使我在脚本的开头设置,我还是会收到警告。如果这与我使用 TPU 加速器的事实有关,那么在这种情况下 TPU 是否有特定行为......我想知道。我不明白。warnings.filterwarnings('ignore')
1赞
SKPS
1/17/2022
只需确保在代码的开头调用即可!
65赞
matthiash
3/30/2017
#2
我通过在单元格中运行以下代码来隐藏粉红色框中的警告:
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>.''')
5赞
ottowg
8/1/2019
#3
对于 JupyterLab,这应该有效 (@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>.''')
14赞
robert
1/22/2020
#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);
评论
2赞
Ben
2/10/2020
我收到错误“Javescript Error: $ is not defined”
1赞
Tobias Bergkvist
5/28/2020
对我也不行。我遇到了与 Ben 相同的错误(我正在使用 JupyterLab)。
0赞
Reza Keshavarz
11/13/2021
它在 Jupyter 和 JupyterLab 中都对我有用。您的安装可能存在一些问题。
0赞
Akhil prasannan
2/2/2022
对我有用,但这也会删除单元格中生成的任何其他输出。
0赞
Aleksandar Savkov
4/9/2023
只需查看官方选择的答案即可。这不太可能奏效。warnings
0赞
najmieh sadat safarabadi
7/22/2023
#5
您需要指定类别,否则即使使用上面的顶级解决方案,您也会收到警告
warnings.filterwarnings("ignore", category=DeprecationWarning)
评论