用pygobject编写D-Bus服务?

时间:2018-09-12 22:22:00

标签: python dbus pygobject

我正在尝试编写D-Bus服务。但是我对python感到困惑 软件包 pygobject dbus-python

是否可以仅使用pygobject编写D-Bus服务(无需使用 dbus-python)?我的理解是pygobject提供了一切 dbus-python可以做到。它是否正确?还是我需要dbus-python?

我通过使用D-Bus成功调用了其他程序的方法 pygobject。但是,如何在D-Bus中提供自己的接口和方法作为服务?据我了解,我必须从继承我的接口类 Gio.DBusInterfaceSkeleton [1]。但是如何导出自己的方法?

[1] https://lazka.github.io/pgi-docs/Gio-2.0/classes/DBusInterfaceSkeleton.html

1 个答案:

答案 0 :(得分:0)

当前无法在pygobject中编写D-Bus服务,因为gobject-introspection的稳定版本似乎无法正确检测所有虚拟方法,尤其是get_vtable方法。您会注意到the generated API docs中缺少do_get_vtable。我尝试构建gobject-introspection 1.59.4,它能够从glib 2.58.1中提取适当的typelib信息,所以也许对未来有希望。