python - 使用 pygobject 编写 D-Bus 服务?

标签 python dbus pygobject

我正在尝试编写 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/

相关文章:

python - 如何比较同一列表中的两个相邻项目 - Python

glib - GLib 和 GObject 到底是什么?

由于环境设置无效而导致Python异常?

python urllib2请求在前面添加换行符来发布数据

python - `data_files` 与 `setup.py` + `pip` 的跨平台支持

Java/Maven : integrating org. freedesktop.NetworkManager

qt - dbus 示例中名为 “car.xml” 的 “D-Bus remote controlled car example” 文件是如何生成的?

c++ - 尝试打开 SDL2 窗口时与 D-Bus 相关的运行时崩溃

python - Gtk.TreeView 中始终可见且粘性的列

python - 有没有办法对用 Python 编写的 Gtk/GLib 代码进行单元测试?