Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 24, 2008 09:34:06

cvetik
От:
Зарегистрирован: 2008-07-22
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

python+dbus-launch

Всем привет! Вот какая ситуация. Есть приложение написанное на питоне, которое описывает интерфейс d-bus с несколькими методами и есть приложение, которое сипользует эти методы. Их взаимодейтсвие проходит по сессионной шине. Когда все стояло на fedora то все работало исправно… Появилась необходимость перенести на фряху… все необходимые пакеты быи установлены. Но тут ждала неожиданность, причем весьма неприятная…. если запускать приложения просто через команду python. то возникает ошибка, связанная с x11. она исчезает, если использовать запуск через dbus-launch python … но тут возникает следующая проблема…
Если делать запуск приложения , которое обращается к написанным методам dbus , таким же способом через dbus-launch. возникает ошибка The name org.SmtpIface was not provided by any .service files
Это возникает по видимому потому, что команда dbus-launch каждый раз создает ситемную шину… как мне можно сделать вызов методов из написанного для dbus интерфейса?
вот нынешний код:

main_loop = DBusGMainLoop()
bus = dbus.SessionBus(mainloop=main_loop)
DBUS_NAME = "org.SmtpIface"
DBUS_PATH = "/org/SmtpIface"

class SmtpIface(dbus.service.Object):
def __init__(self):
global bus
bus_name = dbus.service.BusName(DBUS_NAME, bus=bus)
dbus.service.Object.__init__(self, bus_name, DBUS_PATH)
self.bus = dbus.SessionBus()
obj = self.bus.get_object('org.SmtpIface', '/org/SmtpIface')
iface = dbus.Interface(obj, 'org.SmtpIface')



Офлайн

#2 Сен. 24, 2008 09:50:43

evgenyl
От:
Зарегистрирован: 2008-07-22
Сообщения: 148
Репутация: +  0  -
Профиль   Отправить e-mail  

python+dbus-launch

может стоит попробовать сделать этот самый .service файлик и не запускать сервер пусть сам запускает ?
если я не ошибаюсь он по имени будет запускать твой сервер сам



Офлайн

#3 Сен. 24, 2008 10:08:51

cvetik
От:
Зарегистрирован: 2008-07-22
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

python+dbus-launch

evgenyl
может стоит попробовать сделать этот самый .service файлик и не запускать сервер пусть сам запускает ?
если я не ошибаюсь он по имени будет запускать твой сервер сам
хочется сделать безо всяких доплнительных .service файлов… проблема в том, как передать параметры запущенно сессионной шины в приложение, вызывающее написанные методы…



Офлайн

#4 Сен. 24, 2008 10:43:22

evgenyl
От:
Зарегистрирован: 2008-07-22
Сообщения: 148
Репутация: +  0  -
Профиль   Отправить e-mail  

python+dbus-launch

Такое использование d-bus видел в maemo но к сожелению не знаю как там что и как :(



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version