gpt4 book ai didi

python - DBus 对象错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:28:14 25 4
gpt4 key购买 nike

我正在尝试制作一个脚本,以便在我的 USB 内存棒连接时启动我的自定义脚本。我找到了不错的 python 脚本 here但是当它调用 GetAllProperties() 方法时我得到一个异常:

ERROR:dbus.connection:Exception in handler for D-Bus signal:
Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/dbus/connection.py", line 214, in maybe_handle_message
self._handler(*args, **kwargs)
File "./hal-automount", line 31, in device_added
properties = self.udi_to_device(udi).GetAllProperties()
File "/usr/lib/python2.7/site-packages/dbus/proxies.py", line 68, in __call__
return self._proxy_method(*args, **keywords)
File "/usr/lib/python2.7/site-packages/dbus/proxies.py", line 140, in __call__
**keywords)
File "/usr/lib/python2.7/site-packages/dbus/connection.py", line 630, in call_blocking
message, timeout)
DBusException: org.freedesktop.DBus.Error.AccessDenied: Rejected send message, 3 matched rules; type="method_call", sender=":1.39539" (uid=0 pid=9527 comm="python) interface="(unset)" member="getAllProperties" error name="(unset)" requested_reply=0 destination=":1.8" (uid=0 pid=3039 comm="/usr/sbin/hald))

操作系统:openSuSE 11.4

我以前没有使用过 DBus,你能给我提示哪里出了问题吗?谢谢。

最佳答案

由于访问策略,您的 DBus 方法调用失败。这可能是因为您在未指定任何接口(interface)的情况下调用了方法。看起来您尝试使用的脚本中存在错误(应始终通过接口(interface)调用 DBus 方法)。

尝试替换:

def udi_to_device(self, udi):
return self.bus.get_object("org.freedesktop.Hal", udi)

与:

def udi_to_device(self, udi):
obj = self.bus.get_object("org.freedesktop.Hal", udi)
return dbus.Interface(obj, dbus_interface='org.freedesktop.Hal.Device')

顺便说一句:HAL 现在已经过时了,您可能应该改用 Udisks。参见 http://www.freedesktop.org/wiki/Software/hal

关于python - DBus 对象错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7951822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com