在 Python 3 中从 dbus 迁移到 GDbus
Posted
技术标签:
【中文标题】在 Python 3 中从 dbus 迁移到 GDbus【英文标题】:Migration from dbus to GDbus in Python 3 【发布时间】:2019-06-04 10:04:52 【问题描述】:我尝试使用 GDbus 在 python 中编写服务文件。但是我找不到一个好的教程,只有当我想使用 C 时。因为我想在现有的 Python 代码中包含 GDbus,所以我不知道该怎么做。
我可以使用 dbus 编写服务文件,并且可以使用 GDbus 客户端访问该服务文件。
如果有人在 Python 中有一个很好的例子,我会非常高兴。 非常感谢, 多米尼克
【问题讨论】:
【参考方案1】:虽然您可以在 Python 中使用 GDBus,但它可能不是最好的(大多数 Python 风格的)API,因为它是一个 C API,机械地自省并暴露给 Python。
您最好使用pydbus,这是一个为 Python 编写的现代 D-Bus 客户端库。它的文档中有大量 Python 示例。
如果你必须使用 GDBus,这里有一些 Python 示例:
https://wiki.gnome.org/HowDoI/GDBusPython https://github.com/hexchat/hexchat/blob/master/src/common/dbus/example.py这里是 Python 的 GDBus API 参考(从 C API 机械生成):
https://lazka.github.io/pgi-docs/Gio-2.0/classes/DBusProxy.html【讨论】:
感谢您的快速答复。我现在对 pydbus 进行了一些研究,它看起来确实比 GDBus 更容易使用。如果我遇到另一个对我来说“无法解决”的大问题,我希望我能再问你一次。以上是关于在 Python 3 中从 dbus 迁移到 GDbus的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Qt DBus 调用中从 QDBusMessage 中提取返回的数据?