使用pyusb列出USB设备不起作用

时间:2019-08-24 00:16:53

标签: python pyusb

我正在尝试在Windows 7 pc上列出USB设备。我预先安装了此软件:more info

下面的代码不打印任何内容。还有其他要做的事情来获取设备信息吗?

import usb.core
import usb.util
dev = usb.core.find(find_all=True)
for d in dev:
    print(usb.util.get_string(d,128,d.iManufacturer))

编辑:已解决

这接近我的需求 https://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-devel-filter-1.2.6.0.exe

import win32com.client
wmi = win32com.client.GetObject ("winmgmts:")
for usb in wmi.InstancesOf ("Win32_USBHub"):
    print('Device ID:', usb.DeviceID)

1 个答案:

答案 0 :(得分:1)

看起来您正在使用Python libusb包装器。这只会枚举与libusb驱动程序实际关联的USB设备。每个设备都与一个驱动程序相关联,并且大多数设备将具有由操作系统提供的类驱动程序(例如HID,UVC,MSC等),因此您需要使用其他API来访问它们。您可以通过使用Windows上的本机SetupAPI和WinUSB以通用方式枚举所有设备。但是此包装器仅枚举专门使用libusb驱动程序的设备。由于您的代码未显示任何内容,因此您可能没有使用libusb的设备。

您可以使用Zadig工具将驱动程序重新映射到其他设备。但是要当心,因为如果碰巧选择了不受支持的配置,您很容易破坏事情。当您拥有自定义设备或第三方设备时,通常会使用它。