问题标签 [dbus-python]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
754 浏览

python - dbus-python如何返回字典数组

我在 Ubuntu 16.04 上并使用 Python Dbus。我想通过 DBus 向我的客户返回一个字典列表,但似乎只能返回一个字符串数组。如果我将 dbus 签名装饰器更改为“as{v}”,则会出现异常:“ValueError: Corrupt type signature”。如何通过 DBus 返回字典列表?

编辑:这也不起作用:

0 投票
2 回答
1925 浏览

python - ImportError:没有名为 dbus 的模块

我安装了Python2.7.12,安装了dbus-python-1.2.4,提示安装成功,但是还是不能用,为什么?

使用流程:</p>

0 投票
0 回答
250 浏览

python - Interprocess notification replacement using dbus-python

I'm trying to set up notifications for brightness controls that are replaced immediately when a new notification is sent. I've managed to create a test to get this working within the same python process/script but if a new process is run the notification is not replaced.

I can't see what I'm doing wrong, especially seeing as it all works within the same process. It's almost like dbus isn't actually communicating across processes but the process has its own private connection or something?

Just in case it's important, I'm using:

  • python 3.6.4
  • dbus 1.12.4
  • python-dbus 1.2.6
  • notify-osd 0.9.35 (using the customizable leolik branch)

and this is all under i3 on arch linux.

0 投票
0 回答
886 浏览

python - dbus-python - 发送(广播)dbus 信号的简单示例

我正在寻找一个 dbus-python 等价物dbus-send --system --type=signal

在搜索 dbus-python 并发送信号时,所有示例都涉及定义客户端可以连接到的 dbus 服务(例如https://github.com/zyga/dbus-python/blob/master/examples/example-signal-emitter。 py )

dbus-python 如何允许简单地发送信号?

0 投票
1 回答
215 浏览

python - PyGObject、dbus python 和元类

我想继承两个 python 类:一个来自 PyGObject,一个来自 python3-dbus:

但是我收到以下错误:

我已经发现这是因为GObject.Object并且dbus.service.Object有不同的元类,我也需要对它们进行子类化:

但是它没有帮助,我继续收到同样的错误。也许gi.types.GObjectMetadbus.service.InterfaceType不是正确的元类GObject.Objectdbus.service.Object。有人知道如何合并GObject.Object和的元类dbus.service.Object吗?

0 投票
1 回答
436 浏览

python - 使用 dbus 和 polkit 运行调用 root 脚本的 root 权限 python 服务

我已经编写了一个 python 脚本,它从启动板下载 deb 文件,然后调用一个 shell 脚本来使用外星人将 debs 转换为 rpms。

shell 脚本使用外星人,因此需要以 root 身份运行。

该程序使用线程池异步下载deb文件,使用threadpool.apply_async,然后使用处理池异步调用shell脚本,因此整个事情发生得相当快。

一切正常,但调用外星人的 shell 脚本需要是 root 否则无法正确构建包。当我第一次完成脚本时,我会在使用 sudo 之后使用 pkexec 调用外星人。在这两种情况下,我都有几个问题。

第一个是在root启动时,我丢失了用户的环境,因此丢失了pip安装的python库。也许我可以使用 sudo -s 或类似的,但第二个问题是我必须为构建的每个包输入我的 root 密码。

我想要做的是运行python脚本,qt gui和所有,作为普通用户,选择要转换的文件,然后点击安装按钮,只输入我的超级用户密码一次。

我决定过滤掉python的安装部分,包括线程下载和对shell脚本的线程调用,然后尝试以root/超级用户身份运行这些部分。

我为这个安装部分创建了一个 dbus 服务,并且在经历了一段陡峭的 dbus 学习曲线之后,设法让该服务正常工作。但是,让脚本通过身份验证并提高其权限,我并不高兴。

我已经能够使用 polkit 显示密码对话框并授权超级用户,但我不知道如何使用 polkit 的返回值

它显示密码对话框,用于授权,但不处理提升脚本权限。

我已将 python 安装服务设置为 0500 权限,因此希望一旦我弄清楚如何提升权限,root 用户就有能力读取和执行当前在会话总线上创建的服务。

如何提升权限,同时保留用户的环境变量,这样我就不必将 python 模块安装到 root 帐户中?

非常感谢您提前提供的帮助...

附言。我编写了一个 polkit 操作文件和一个 polkit 规则,但在每种情况下,我都不确定操作 id 与特权提升有何关系。pps。我可以/应该使用 pam 吗?

0 投票
2 回答
1198 浏览

python-3.x - 推荐使用 pydbus 或 dbus-python 有什么区别?

我正在尝试实现一个 dbus 服务,该服务将在 Gtk 应用程序中使用。

有两个 python 模块(pydbus vs. dbus-python)声称可以做到这一点。我一直无法找到这两种实现的任何赞成和反对清单。

我的简短问题是:

在 Python3 中实现 dbusservice 的推荐方法是什么?

0 投票
1 回答
3831 浏览

ubuntu - 无法使用 Python3.8 在 Ubuntu 上安装 dbus-python

我想在我的 Ubuntu 上安装 HP 驱动程序 (hplip)。

它尝试安装 d-bus python 包,但失败并说要手动安装。

使用“apt”安装可以正常工作,但可能不适用于我的主要 Python 版本,这就是 hplip 失败的原因:

... 效果很好

所以我尝试了这个:

但没有成功:

我努力了

,它工作正常。

我能做些什么?

0 投票
1 回答
651 浏览

python - 如何在 dbus 回调函数中获取 systemd 服务信息

我有以下 python 脚本来监视来自所有 systemd 服务的“PropertiesChanged”信号。

我能够获得如下信息。

在 catchall_signal_handler() 函数内部,现在我想获取服务名称,即 (tftp.service)

获取此信息的正确方法是什么?

我是 dbus API 编程的新手。

试过这个(如何通过 Systemd DBus API 提取服务状态?)但没有帮助。请提供一些有用的提示/指针。

我的最终目标是监控一组预定义的服务。例如:[“tftp.service”、“docker.service”、“kubernetes.service”]

上述方法是正确的方法吗?请建议。

0 投票
3 回答
16612 浏览

pip - 找不到包“dbus-1”

这是我的 $PKG_CONFIG_PATH:
:/usr/share/pkgconfig/:/usr/lib/x86_64-linux-gnu/pkgconfig/

我的系统中预装了 python2.7(ubuntu 16.04)。我需要运行 python3.x 脚本。所以为此,我从sudo add-apt-repository ppa:deadsnakes/ppa. 但它需要从官方源安装(构建和安装)。我也是从官方来源(3.7.4)构建的。

最后,在运行实际脚本时,它正在导入 dbus 包,从那里我遇到了一个错误。

请帮帮我。我被困了2天。我会在需要时提供更多信息。