Форум сайта python.su
Всем привет! Вот какая ситуация. Есть приложение написанное на питоне, которое описывает интерфейс 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')
Офлайн
может стоит попробовать сделать этот самый .service файлик и не запускать сервер пусть сам запускает ?
если я не ошибаюсь он по имени будет запускать твой сервер сам
Офлайн
evgenylхочется сделать безо всяких доплнительных .service файлов… проблема в том, как передать параметры запущенно сессионной шины в приложение, вызывающее написанные методы…
может стоит попробовать сделать этот самый .service файлик и не запускать сервер пусть сам запускает ?
если я не ошибаюсь он по имени будет запускать твой сервер сам
Офлайн
Такое использование d-bus видел в maemo но к сожелению не знаю как там что и как :(
Офлайн