【发布时间】:2011-07-20 02:35:41
【问题描述】:
所以我安装了 Pyusb 1.0.0-alpha-1
在 Windows 下,我无法获得 USB 设备的任何句柄。
>>> import usb.core
>>> print usb.core.find()
None
我确实插入了 1 个 USB 设备(idVendor=0x04d8,idProduct=0x0042),我尝试了usb.core.find(idVendor=0x04d8, idProduct=0x0042),但也失败了。
在 Ubuntu 下,使用相同版本的 pyusb 和 python (2.6),我能够使用该代码成功找到我的设备,并与之通信。
那么如何让 pyusb 在 Windows 7 上找到 USB 设备?
【问题讨论】:
-
这可能是一个愚蠢的问题,但驱动程序是否安装正确?看起来 PyUSB 依赖于 libusb。见github.com/karlp/karlnet/tree/usbmaster/producers/pyhid
-
@BrianLy 这实际上是一个很好的问题,谢谢!我做了一些修改,发现正在加载 libusb0.1 后端。原来我使用的是 32 位 python 并安装了 64 位 libusb1.0 dll。我用 32 位版本替换了它,现在 usb.core.find() 可以工作了。
-
但是,我现在还有其他错误。当我尝试
device.detach_kernel_header(0)时,我得到USBError: Operation not supported or unimplemented on this platform。 -
分离内核驱动只在Linux上实现。我猜您正在尝试访问 HID 设备,不是吗?我听说 libusb 不是最好的选择。试试HIDAPI,但我不知道是否有可用的python绑定。
标签: python windows libusb pyusb libusb-1.0