gpt4 book ai didi

python - 从 python 调用时,udisks FilesystemUnmount 似乎不存在

转载 作者:行者123 更新时间:2023-11-28 18:50:44 26 4
gpt4 key购买 nike

我正在尝试卸载使用 FilesystemMount 安装的文件系统,但我不断收到 UnknownMethod 异常。我已经验证我可以通过 D-Feet 调用 Device 接口(interface)上的方法,但是尝试直接通过 dbus 进行调用似乎根本不起作用。我试过使用以下参数:

  • ''
  • 没有
  • []
  • ['']

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

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'])

异常(exception):

dbus.exceptions.DBusException:org.freedesktop.DBus.Error.UnknownMethod:接口(interface)“org.freedesktop.UDisks.Device”上带有签名“as”的方法“FilesystemUmount”不存在

最佳答案

事实证明,问题在于 FilesystemUnmount 只会获取 udisk 分发的 ObjectPath。因此,通过为此添加一个支票然后查找它,我让它工作了。请参阅下面的代码。

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('')

关于python - 从 python 调用时,udisks FilesystemUnmount 似乎不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13386180/

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