PyUSB 1.0: NotImplementedError: операция не поддерживается или не реализована на этой платформе

Я только начал использовать pyusb, и в основном я играю с примером кода здесь.

Я использую 64-разрядную версию Windows7 и загрузил zip-версию с https://walac.github.io/pyusb/ . Серверной частью является libusb-1.0.19, который загружает двоичный файл Windows с http://libusb.info/.

Весь мой код:

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 для доступа к флешке? Или я что-то пропустил...


person Bomin    schedule 12.08.2015    source источник


Ответы (2)


Эта проблема связана с правильным драйвером для W7/64-бит. Я попытался подключить и использовать самопрограммируемую карту Microchip. К сожалению, драйвер, предоставленный Microchip, несовместим с библиотекой libusb, и я столкнулся с той же ошибкой.

Прочтите: Как использовать libusb в Windows

Затем: - установка ZADIG выполняется с подключенной картой Microchip - затем из всплывающего окна ZADIG «Список всех устройств» позволяет мне обнаружить и выбрать мое устройство «CDC RS-232 Emulation Demo» ID = 04d8:000a - затем несколько драйверов возможно: я установил WINUSB (Microsoft)

Теперь первый этап перечисления устройств работает нормально.

person frva    schedule 23.07.2016
comment
это решение не работает для устройств ESD CAN-USB/2. - person ZF007; 02.12.2019

Это также случилось со мной, и проблема заключалась в том, что устройство использовалось другим программным обеспечением или драйвером.

person vlk    schedule 18.02.2016