PyUSB 1.0:NotImplementedError:此平台上不支持或未实现的操作

Posted

技术标签:

【中文标题】PyUSB 1.0:NotImplementedError:此平台上不支持或未实现的操作【英文标题】:PyUSB 1.0: NotImplementedError: Operation not supported or unimplemented on this platform 【发布时间】:2015-11-04 18:33:29 【问题描述】:

我刚开始用pyusb,基本都是在玩示例代码here。

我使用的是 Windows7 64 位,并从https://walac.github.io/pyusb/ 下载了 zip 版本。后端是 libusb-1.0.19,它是从 http://libusb.info/ 下载的 windows 二进制文件。

我所有的代码都是:

dev = usb.core.find(idVendor=3544, idProduct=9736)
if dev is None:
    sys.stdout.write("No device found")
    return;
print "deviceClass = " + str(dev.bDeviceClass);
for cfg in dev:
    sys.stdout.write("configuration: " + str(cfg.bConfigurationValue) + '\n')
    for intf in cfg:
        sys.stdout.write('\tInterface: ' + \
                             str(intf.bInterfaceNumber) + \
                             ',' + \
                             str(intf.bAlternateSetting) + \
                             '\n')
        for ep in intf:
            sys.stdout.write('\t\tEndpoint: ' + \
                                  str(ep.bEndpointAddress) + \
                                  ',' + \
                                  str(ep.bmAttributes) + \
                                  '\n')

dev.set_configuration()

在最后一行,我得到了

File "test.py", line 44, in find_mine
    dev.set_configuration()
File "c:\Python27\lib\site-packages\usb\core.py", line 842, in set_configuration
    self._ctx.managed_set_configuration(self, configuration)
File "c:\Python27\lib\site-packages\usb\core.py", line 128, in managed_set_configuration
    self.managed_open()
File "c:\Python27\lib\site-packages\usb\core.py", line 106, in managed_open
    self.handle = self.backend.open_device(self.dev)
File "c:\Python27\lib\site-packages\usb\backend\libusb1.py", line 778, in open_device
    return _DeviceHandle(dev)
File "c:\Python27\lib\site-packages\usb\backend\libusb1.py", line 640, in __init__
    _check(_lib.libusb_open(self.devid, byref(self.handle)))
File "c:\Python27\lib\site-packages\usb\backend\libusb1.py", line 590, in _check
    raise NotImplementedError(_strerror(ret))
NotImplementedError: Operation not supported or unimplemented on this platform

我安装了多个 USB 设备,但只有在我尝试 set_configuration 为我的 USB 闪存驱动器时才会看到此问题...

这是因为我无法使用 pyusb 访问闪存驱动器吗?或者我错过了什么......

【问题讨论】:

【参考方案1】:

这个问题是关于在 W7/64 位上安装正确的驱动程序。 我尝试连接并使用 Microchip 自编程卡。不幸的是,Microchip 提供的驱动程序与 libusb 库不兼容,我也遇到了同样的错误。

阅读:How to use libusb on Windows

然后: - ZADIG 安装在连接 Microchip 卡的情况下执行 - 然后从 ZADIG 弹出窗口“列出所有设备”允许我检测并选择我的设备“CDC RS-232 仿真演示”ID = 04d8:000a - 然后可以使用多个驱动程序:我安装了 WINUSB (microsoft)

现在设备枚举的第一阶段工作正常。

【讨论】:

此解决方案不适用于 ESD CAN-USB/2 设备。【参考方案2】:

这也发生在我身上,问题是该设备被其他软件或驱动程序使用。

【讨论】:

以上是关于PyUSB 1.0:NotImplementedError:此平台上不支持或未实现的操作的主要内容,如果未能解决你的问题,请参考以下文章

PyUSB:从 USB 设备读取

使用 PyUSB 通过 USB 发送数据

PyUSB怎么理解? [关闭]

设备在 PyUSB 上不可用

pyusb 读取操作总是返回 '1'

pyusb:无法设置配置