Dbus соединение через mod_wsgi в python - PullRequest
2 голосов
/ 30 октября 2010

Я пытаюсь написать небольшое приложение, которое позволяет отправлять команды dbus (Amarok) через веб-страницу.Я использую python + mod_wsgi, потому что мне нужно запустить скрипт с тем же пользователем, что и Amarok.Когда я подключаюсь к Amarok через обычную оболочку, все работает.Но после подключения через скрипт я получаю следующую ошибку:

DBusException: org.freedesktop.DBus.Error.Spawn.ExecFailed: /usr/bin/dbus-launch terminated abnormally with the following error: Autolaunch error: X11 initialization failed.

Код, который подключается к Amarok:

import dbus
conn = dbus.SessionBus().get_object('org.kde.amarok','/Player')

Знаете ли вы, что я должен сделать, чтобы подключиться черездбус в амарок?Большое спасибо за помощь!

Обновление: я дам вам дополнительную информацию о конфигурации:httpd.conf:

LoadModule wsgi_module  modules/mod_wsgi.so
WSGIScriptAlias /amarok /var/www/amarok-python/config.wsgi
WSGIDaemonProcess l user=wojtas group=wojtas processes=1
WSGIProcessGroup l

config.WSGI:

import sys
path='/var/www/amarok-python'
if path not in sys.path:
    sys.path.append(path)
import index
application=index.application

Код приложения (index.py):

import dbus
from os import getuid
def connect():
        conn = dbus.SessionBus().get_object('org.kde.amarok','/Player')
        conn.Start()
        return conn
def application(environ,start_response):
    status= '200 OK'
    connection=connect()
    output=str(getuid())
    response_headers= [('Content-type','text/html'), ('Content-Length', str(len(output)))]
    start_response (status,response_headers)
    return [output]

1 Ответ

0 голосов
/ 22 мая 2011

Проблема была в том, что я не установил переменную DISPLAY, которая требуется для соединения с dbus.Вы можете проверить небольшой учебник на этой веб-странице: http://blog.wojtass.pl/tutorial-control-amarok-remotely-through-web-browser/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...