这是我第一次使用DBus,所以请容忍我。
这是我的代码:

import gobject
import pprint
gobject.threads_init()

from dbus import glib
glib.init_threads()

import dbus
bus = dbus.SessionBus()

remote_object = bus.get_object("org.freedesktop.UDisks", # Connection name
                               "/org/freedesktop/UDisks" # Object's path
                              )

print ("Introspection data:\n")
print remote_object.Introspect()
print remote_object.get_dbus_method("ListNames",dbus_interface="org.freedesktop.DBus")
for item in remote_object.ListNames():
        print item

我得到的错误是:
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.UDisks was not provided by any .service files

udisk-demon manpage
udisks守护进程在系统消息总线上提供org.freedesktop.udisks服务。用户或管理员不应该需要启动这个守护进程,因为只要应用程序调用org.freedesktop.UDisks服务,dbus守护进程(1)就会自动启动它。有关如何自定义udisks守护进程工作方式的信息,请参阅udisks(7)手册页。
编辑:所以它是SystemSession()而不是SessionBus()

最佳答案

您可以尝试使用DFeet检查这个DBUS对象是否真的存在。

关于python - 无法通过DBus-Python连接到org.freedesktop.UDisk,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4142690/

10-12 20:22