首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从python调用udisks似乎不存在。

从python调用udisks似乎不存在。
EN

Stack Overflow用户
提问于 2012-11-14 19:47:14
回答 1查看 624关注 0票数 3

我正在尝试卸载我使用FilesystemMount挂载的文件系统,但是我一直得到UnknownMethod异常。我已经验证了我可以通过D英尺在设备接口上调用这个方法,但是试图通过dbus直接调用这个方法似乎根本不起作用。我尝试使用以下参数:

  • '‘
  • []
  • '‘

下面的代码演示了这个问题:

代码语言:javascript
复制
import dbus

bus = dbus.SystemBus()
proxy = bus.get_object('org.freedesktop.UDisks', '/dev/fd0')
dev = dbus.Interface(proxy, 'org.freedesktop.UDisks.Device')
dev.FilesystemUnmount(['force'])

例外:

dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Method "FilesystemUmount" with signature "as" on interface "org.freedesktop.UDisks.Device" doesn't exist

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-14 20:22:11

事实证明,问题是FilesystemUnmount只会使用udisk发出的ObjectPath。因此,通过添加一个检查,然后查找它,我让它工作。请看下面的代码。

代码语言:javascript
复制
import dbus

path = '/dev/fd0'

bus = dbus.SystemBus()

if not isinstance(path, dbus.ObjectPath):
    manager_obj = bus.get_object('org.freedesktop.UDisks',
                                 '/org/freedesktop/UDisks')
    manager = dbus.Interface(manager_obj, 'org.freedesktop.UDisks')
    path = manager.FindDeviceByDeviceFile(path)

proxy = bus.get_object('org.freedesktop.UDisks', path)
dev = dbus.Interface(proxy, 'org.freedesktop.UDisks.Device')
dev.FilesystemUnmount('')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13386180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档