Python DBus对象错误
我正在尝试制作一个脚本,以便在usb棒连接时启动自定义脚本。 我发现了很好的python脚本,但当它调用GetAllProperties()方法时,我得到了一个异常: 错误:dbus。连接:D-Bus信号处理程序中出现异常:Python DBus对象错误,python,linux,dbus,opensuse,Python,Linux,Dbus,Opensuse,我正在尝试制作一个脚本,以便在usb棒连接时启动自定义脚本。 我发现了很好的python脚本,但当它调用GetAllProperties()方法时,我得到了一个异常: 错误:dbus。连接:D-Bus信号处理程序中出现异常:回溯 (最近一次调用上次):文件 “/usr/lib/python2.7/site packages/dbus/connection.py”,第214行,在 可能会处理消息 self.\u处理器(*args,**kwargs)文件“/hal automount”,第31行,在
回溯 (最近一次调用上次):
文件 “/usr/lib/python2.7/site packages/dbus/connection.py”,第214行,在 可能会处理消息
self.\u处理器(*args,**kwargs)
文件“/hal automount”,第31行,在设备中添加
properties=self.udi_to_设备(udi).GetAllProperties()
文件“/usr/lib/python2.7/site packages/dbus/proxies.py”,第68行,在 __打电话给 返回self._proxy_method(*args,**关键字)
文件“/usr/lib/python2.7/site packages/dbus/proxies.py”,第140行,在 __打电话给 **关键词)
文件“/usr/lib/python2.7/site packages/dbus/connection.py”,第630行,在 呼叫阻塞
消息,超时)
dbuseException:org.freedesktop.DBus.Error.AccessDenied:拒绝发送消息,3 匹配规则;type=“方法调用”,sender=“:1.39539”(uid=0 pid=9527 comm=“python)interface=“(unset)”member=“getAllProperties”错误 name=“(unset)”请求的应答=0目的地=“:1.8”(uid=0 pid=3039 comm=“/usr/sbin/hald)) 操作系统:openSuSE 11.4 我以前没有和DBus合作过,你能给我一个提示吗?
谢谢。由于访问策略,您的DBus方法调用失败。这可能是因为您调用了一个方法而没有指定任何接口。看起来您试图使用的脚本中有一个bug(应该始终通过接口调用DBus方法) 尝试替换:
def udi_to_device(self, udi):
return self.bus.get_object("org.freedesktop.Hal", udi)
与:
顺便说一句:HAL现在已经过时了,您可能应该切换到UDisk。请参见这看起来与我的问题相关-您能检查一下吗?
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')