我正在尝试编写 D-Bus 服务。但我对 python 感到困惑 包pygobject 和 dbus-python 。
是否可以单独使用 pygobject 编写 D-Bus 服务(不使用 dbus-python)?我的理解是 pygobject 提供了一切 dbus-python 就是这样做的。它是否正确?或者我需要 dbus-python 吗?
我成功地通过D-Bus调用其他程序的方法,只需使用
pygobject。但是我如何在 D-Bus 中提供自己的接口(interface)和方法作为服务呢?据我了解,我必须继承我的接口(interface)类
Gio.DBusInterfaceSkeleton
[1]。但如何导出我自己的方法呢?
[1] https://lazka.github.io/pgi-docs/Gio-2.0/classes/DBusInterfaceSkeleton.html
最佳答案
目前无法在 pygobject 中编写 D-Bus 服务,因为 gobject-introspection 的稳定版本似乎无法正确检测所有虚拟方法,特别是 get_vtable
方法。您会注意到 the generated API docs 中缺少 do_get_vtable
。我尝试构建 gobject-introspection 1.59.4,它能够从 glib 2.58.1 中提取正确的 typelib 信息,所以也许 future 还有希望。
关于python - 使用 pygobject 编写 D-Bus 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52304262/