Python: фактическая команда os.system x

Когда я выполняю приведенную ниже команду непосредственно через командную строку, она работает правильно:

mpg321 -a bluetooth Canon.mp3

Однако, выполнив приведенный ниже код через Python:

import os
os.system('mpg321 -a bluetooth Canon.mp3')

Я получаю следующую ошибку:

ALSA lib pcm.c: 2217: (snd_pcm_open_noupdate) Unknown PCM bluetooth Не удается открыть драйвер libao с помощью устройства bluetooth (используется ли устройство?)

Есть идеи, что может быть не так? Спасибо!


person Community    schedule 23.11.2014    source источник
comment
Это может быть связано с тем, что у пользователя, который запускает os.system(...), нет прав на запись в / dev / audio. См. Debian SoundFAQ (поиск «Невозможно открыть libao»), который указывает на wiki.debian.org/SoundConfiguration для решения.   -  person unutbu    schedule 23.11.2014
comment
Отличная идея. os.system ('sudo -u pi mpg321 -a bluetooth Canon.mp3') решил проблему! Спасибо! Пожалуйста, опубликуйте ответ, чтобы я принял его!   -  person    schedule 23.11.2014
comment
Здорово. Рад, что это сработало.   -  person unutbu    schedule 23.11.2014


Ответы (1)


Сообщение об ошибке mpg321:

Не могу открыть драйвер libao

может произойти, если у пользователя нет прав на запись в / dev / audio. См. Debian SoundFAQ (поиск по запросу «Не удается открыть libao»), который указывает на http://wiki.debian.org/SoundConfiguration для решения, а именно для добавления пользователя в группу audio.

adduser USER_NAME audio

Или сделайте то же, что и OP, и запустите команду от имени пользователя, у которого уже есть нужные привилегии.

person unutbu    schedule 23.11.2014