我正在尝试使用pyusb和pyusb-keyboard-a-like接管条形码扫描仪。我有一个运行win7的系统。我已经安装了带有libusb-win32
的usb驱动程序,包括filter和inf向导。我的代码如下:
from keyboard_alike import reader
class BarCodeReader(reader.Reader):
pass
if __name__ == "__main__":
reader = BarCodeReader(0x0c2e, 0x0b41, 84, 6, should_reset=False)
reader.initialize()
print(reader.read().strip())
reader.disconnect()
并给我以下错误:
Traceback (most recent call last):
File "C:UsersAlexanderDownloadspyusb-keyboard-alike-masterpyusb-keyboard-alike-masterlindy_bar_code_scanner.py", line 14, in <module>
reader.initialize()
File "C:UsersAlexanderDownloadspyusb-keyboard-alike-masterpyusb-keyboard-alike-masterkeyboard_alikereader.py", line 37, in initialize
self._device = usb.core.find(idVendor=self.vendor_id, idProduct=self.product_id)
File "C:Python27libsite-packagesusbcore.py", line 846, in find
raise ValueError('No backend available')
ValueError: No backend available
如何解决此错误?
您必须提供一个后端,即libusb
实现,由libusb-0.1
、libusb-1.0
或openusb
实现(如文件夹pyusb-<version>usbbackend
中所示)。在您的情况下,它是libusb-0.1
,因为您使用了libusb-win32
,因此python脚本必须能够在库路径中找到libusb0.dll
。我在这里为这个典型的问题提供了一个解决方案:PyUSB ValueError:没有可用的后端。