我正在尝试编写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
答案 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信息,所以也许对未来有希望。