如何在 Jupyter Lab/Notebook 中隐藏错误回溯?
How to hide the error traceback in Jupyter Lab/Notebook?
我的目标是从 python 的异常处理程序中获得最少的输出(没有回溯)。在普通的 python 脚本中,我可以使用 :
sys.tracebacklimit=0
但是在笔记本中,这似乎并没有按照我想要的方式工作,而且输出实际上更糟(更长)。有什么快速解决这个问题的方法吗?
import sys
ipython = get_ipython()
def hide_traceback(exc_tuple=None, filename=None, tb_offset=None,
exception_only=False, running_compiled_code=False):
etype, value, tb = sys.exc_info()
return ipython._showtraceback(etype, value, ipython.InteractiveTB.get_exception_only(etype, value))
ipython.showtraceback = hide_traceback
以上代码将只打印异常和颜色代码异常类型而不追溯。
这是你想要的。
将其粘贴到笔记本的第一个单元格中并尝试 运行 it
或者更好:
# sorry, this was not a great idea. See @Eric's comment.
import functools
ipython = get_ipython()
method_name = "showtraceback"
setattr(
ipython,
method_name,
functools.partial(
getattr(ipython, method_name),
exception_only=True
)
)
我的目标是从 python 的异常处理程序中获得最少的输出(没有回溯)。在普通的 python 脚本中,我可以使用 :
sys.tracebacklimit=0
但是在笔记本中,这似乎并没有按照我想要的方式工作,而且输出实际上更糟(更长)。有什么快速解决这个问题的方法吗?
import sys
ipython = get_ipython()
def hide_traceback(exc_tuple=None, filename=None, tb_offset=None,
exception_only=False, running_compiled_code=False):
etype, value, tb = sys.exc_info()
return ipython._showtraceback(etype, value, ipython.InteractiveTB.get_exception_only(etype, value))
ipython.showtraceback = hide_traceback
以上代码将只打印异常和颜色代码异常类型而不追溯。 这是你想要的。 将其粘贴到笔记本的第一个单元格中并尝试 运行 it
或者更好:
# sorry, this was not a great idea. See @Eric's comment.
import functools
ipython = get_ipython()
method_name = "showtraceback"
setattr(
ipython,
method_name,
functools.partial(
getattr(ipython, method_name),
exception_only=True
)
)