Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Eclipse配置为在完成时发出哔哔声(Python、Linux)_Python_Linux_Eclipse_Audio_Pydev - Fatal编程技术网

将Eclipse配置为在完成时发出哔哔声(Python、Linux)

将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

我将我的应用程序配置为完成时发出嘟嘟声(帮助我在长时间运行时执行多任务)。 在windows上,它很简单:

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插件提供了源代码,当一项工作完成时,它会发出嘟嘟声。