gpt4 book ai didi

ipython - Jupyter notebook 单元出现故障时播放声音

转载 作者:行者123 更新时间:2023-12-03 19:09:03 24 4
gpt4 key购买 nike

每当 Jupyter 笔记本单元抛出错误 时, 的任何技巧都会播放声音吗?

我检查了 this question ,我目前正在使用 cellbell ,如下所示:

import cellbell

# line magic
%ding my_long_function()

但我不知道在我的一个单元格抛出错误时让它运行(除了将每个单元格包装在 try/catch 子句中)。

我想我需要的是类似于“错误 Hook ”的东西,类似于 savehook ...

最佳答案

没有 cellbell (更通用的答案)

在笔记本中定义一个函数。 **注意:Audio 必须传递给 display

from IPython.display import Audio, display

def play_sound(self, etype, value, tb, tb_offset=None):
self.showtraceback((etype, value, tb), tb_offset=tb_offset)
display(Audio(url='http://www.wav-sounds.com/movie/austinpowers.wav', autoplay=True))

设置自定义异常处理程序,您可以在元组中列出异常类型。

get_ipython().set_custom_exc((ZeroDivisionError,), play_sound)

测试一下:

1/0

---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
<ipython-input-21-05c9758a9c21> in <module>()
----> 1 1/0

ZeroDivisionError: division by zero

cellbell :
不同之处在于使用了 %ding 魔法。

import cellbell

def play_sound(self, etype, value, tb, tb_offset=None):
%ding
self.showtraceback((etype, value, tb), tb_offset=tb_offset)
print('ding worked!')

重置自定义异常,注意您可以使用 Exception 播放任何错误的声音:

get_ipython().set_custom_exc((Exception,), play_sound)

测试:

1/0

---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
<ipython-input-4-05c9758a9c21> in <module>()
----> 1 1/0

ZeroDivisionError: division by zero

ding worked!

在 jupyter notebook 4.2.3 上测试

关于ipython - Jupyter notebook 单元出现故障时播放声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40722417/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com