Когда вы закончите, настройте Eclipse на Beep (Python, Linux) - PullRequest
3 голосов
/ 03 января 2011

Я настроил свои приложения, чтобы они подали звуковой сигнал, когда это сделано (помогает мне многозадачность при длительных запусках). На окнах это было просто:

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' тоже не работает. Помощь

Ответы [ 2 ]

0 голосов
/ 11 марта 2013

Основная причина заключается в том, что большинство современных дистрибутивов 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
0 голосов
/ 03 января 2011

Попробуйте сделать sys.stdout.write('\007') вместо print '\a'

...