You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows下使用libusb出现"Error Accessing String"错误的解决方法

解决Windows下libusb无法获取USB设备字符串的问题

1. 替换设备驱动为libusb兼容版本

Windows自带的USB驱动(如WinUSB、HID类驱动)常限制libusb访问设备字符串描述符。需用工具将目标设备驱动替换为libusb支持的类型:

  • 使用Zadig工具:选中目标USB设备,将驱动切换为WinUSB、libusb-win32或libusbK。替换后,libusb即可正常读取设备字符串。
    • 注意:替换驱动可能导致设备原有功能暂时失效(如打印机、键盘),需恢复时可通过设备管理器操作。

2. 手动实现字符串描述符读取

默认print(dev)的内部逻辑未处理复杂权限场景,可手动调用API读取并增加错误捕获:

import libusb_package as libusb

libusb.init()
try:
    devices = libusb.find(find_all=True)
    for dev in devices:
        print(f"DEVICE ID {dev.idVendor:04x}:{dev.idProduct:04x} on Bus {dev.bus_number:03d} Address {dev.address:03d} ==================")
        # 读取厂商字符串
        try:
            manufacturer = dev.get_string_descriptor(dev.iManufacturer, 100)
            print(f" iManufacturer          :    0x{dev.iManufacturer:x} {manufacturer}")
        except Exception as e:
            print(f" iManufacturer          :    0x{dev.iManufacturer:x} Failed: {str(e)}")
        # 读取产品字符串
        try:
            product = dev.get_string_descriptor(dev.iProduct, 100)
            print(f" iProduct               :    0x{dev.iProduct:x} {product}")
        except Exception as e:
            print(f" iProduct               :    0x{dev.iProduct:x} Failed: {str(e)}")
        # 读取序列号字符串
        try:
            serial = dev.get_string_descriptor(dev.iSerialNumber, 100)
            print(f" iSerialNumber          :    0x{dev.iSerialNumber:x} {serial}")
        except Exception as e:
            print(f" iSerialNumber          :    0x{dev.iSerialNumber:x} Failed: {str(e)}")
finally:
    libusb.exit()

该方式能捕获具体错误,部分未替换驱动的设备也可能成功读取字符串。

3. 排查设备进程占用

若USB设备被其他应用(如自带管理软件)独占,libusb无法访问描述符:

  • 关闭可能占用设备的程序后重试脚本。
  • 通过Windows「资源监视器」查看占用设备的进程,结束对应进程后再运行代码。

4. 更新libusb-package至最新版

当前使用的1.0.26.2版本存在兼容性问题,更新到最新版可修复部分Windows权限相关bug:

pip install --upgrade libusb-package

内容的提问来源于stack exchange,提问作者Alex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 04:00:29