将Eclipse配置为在完成时发出哔哔声(Python、Linux)
我将我的应用程序配置为完成时发出嘟嘟声(帮助我在长时间运行时执行多任务)。 在windows上,它很简单:将Eclipse配置为在完成时发出哔哔声(Python、Linux),python,linux,eclipse,audio,pydev,Python,Linux,Eclipse,Audio,Pydev,我将我的应用程序配置为完成时发出嘟嘟声(帮助我在长时间运行时执行多任务)。 在windows上,它很简单: def beep_please(): """Beep on Windows""" if os.name == 'nt': import winsound #@UnresolvedImport winsound.MessageBeep(winsound.MB_ICONEXCLAMATION) import atexit atexit.regi
def beep_please():
"""Beep on Windows"""
if os.name == 'nt':
import winsound #@UnresolvedImport
winsound.MessageBeep(winsound.MB_ICONEXCLAMATION)
import atexit
atexit.register(beep_please)
问题是我最近切换到Linux,简单的嘟嘟声不起作用。
打印'\a'
也不起作用。
帮助?尝试执行
sys.stdout.write('\007')
而不是print'\a'
根本原因是大多数现代Linux发行版关闭了恼人的默认“哔哔声”。潜在的解决方案是使用pygame,或直接使用安装的“玩家”之一 使用Pygame如下所示:
import pygame
pygame.init()
pygame.mixer.music.load("my_sound_file.ogg")
pygame.mixer.music.play()
pygame.event.wait()
但我不想为了非运行时实用程序而使用新的外部依赖,因此我最终要做的是:
import os
os.system("/usr/bin/canberra-gtk-play --id='system-ready'")
Ubuntu主题中还有很多其他声音文件:
ls /usr/share/sounds/ubuntu/stereo
我得到一个长方形正方形,里面有0007。。。Eclipse3.6.1和Ubuntu10.10.Hmm,也许stdout没有指向tty。尝试打开('/dev/pty0',w')。写入('\007')。但是,这并不健壮,因为它假设您已经打开了/dev/pty0。我不知道如何让它变得更好。。。可能是/dev/tty0?两者都会导致IOError:
[Errno 13]权限被拒绝:'/dev/tty0'
在eclipse之外,打印'\a'
没有任何作用。写入pty0和tty0会导致相同的权限拒绝错误。执行上述操作也不会产生任何结果。print'\007'
outerEclipseRelated:请参阅这个问题的答案:一个善良的灵魂为eclipse插件提供了源代码,当一项工作完成时,它会发出嘟嘟声。