在 VSCode Jupyter Notebook 中,有没有一种方法可以在单元格执行完成时得到通知?

10

我正在使用VSCode上的Jupyter Notebook,并希望在cell执行完成时得到通知。我搜寻了一下,但没有找到任何可供实现此任务的扩展。是否有办法让这个功能生效?

5个回答

7

有音频提示用于

Notebook Cell Completed
Notebook Cell Failed

此功能已加入到 VS Code 中,见 在单元格执行完成后实现音频提示

应该位于设置中的 Audio Cues: Notebook Cell CompletedAudio Cues: Notebook Cell Failed


4
重要的是,没有人希望在每个单元格执行完毕时都收到通知。相反,我们希望在长时间运行的单元格完成时收到通知。因此,应该有一种方式来设置条件,使得如果一个单元格在那个时间阈值下完成运行,就不会发出声音警报,但对于运行时间较长的单元格,这些单元格在完成后会播放警报声音。 否则,您的笔记本将会像一支乐队演奏着不必要的“误报”,为短时间运行的单元格播放听得到的警报声音。

3

当您的代码完成后,您可以在节的结尾播放声音。:-P

from playsound import playsound
playsound('/path/to/note.wav') # .wav file
playsound('/path/to/note.mp3') # .mp3 file

这是一种创建音频警报的方法,如果符合您的需求,您可以借用您正在使用的操作系统中提供的其中一个音频警报。

如果您正在寻找远程通知系统,可以通过给自己发送电子邮件或设置twilio帐户来实现。


但是这必须添加到每个单元格,对吗? - Sruthi
它会增加一些灵活性,因为您可以添加不同的提示来表示哪个部分已完成。这是另一种让您了解代码进展情况的方式,或者如果您正在循环,则可以知道其在循环中的位置。这有点像使用声音进行打印调试。 - FlippinBits
相关的帖子在这里。另一个关于使用声音触发器的帖子在这里 - Wayne

2
Telegram Bots API是一个非常好的工具。在你的笔记本单元格执行完成后,你可以使用Python的Telegram API库向手机和电脑发送通知(甚至可以发送图片)。为了使用它,你只需要获取API令牌(非常简单),在你的笔记本中添加几行代码,并在作业结束时执行它。获取API令牌请访问以下链接:https://www.siteguarding.com/en/how-to-get-telegram-bot-api-token。该库的PyPI页面:https://pypi.org/project/python-telegram-bot/。文档请参考以下链接:https://docs.python-telegram-bot.org/en/v20.0a6/telegram.bot.html#telegram.Bot.send_message。请注意保留HTML标签。

1
import winsound    
winsound.Beep(1440, 200)    

1440音调频率(赫兹),200声音持续时间(毫秒)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接