1

我正在尝试使用 Pyusb 生成产品/供应商 ID 列表,但遇到了麻烦。我从 orangecoat 网上找到了一个建议。

import sys
import usb.core
import usb.util

dev = usb.core.find(find_all=True)

if dev is None:
   raise ValueError('Device not found')

cfg = dev.get_active_configuration()

Python虽然给出了以下错误:

Traceback (most recent call last):
  File "C:/Python27/usbfinddevices.py", line 10, in <module>
    cfg = dev.get_active_configuration()
AttributeError: 'generator' object has no attribute 'get_active_configuration'

有人可以帮我理解为什么我会收到这个错误吗?谢谢

4

2 回答 2

0

您快到了,但您需要遍历dev作为生成器的对象。

dev = usb.core.find(find_all=True)
for d in dev:
    print usb.util.get_string(d,128,d.iManufacturer)
    print usb.util.get_string(d,128,d.iProduct)
    print (d.idProduct,d.idVendor)
于 2014-09-15T17:27:04.817 回答
-2

保存此脚本

test.py

import usb.core
import usb.util

dev = usb.core.find(find_all=True)

# get next item from the generator
d = dev.next() 
print d.get_active_configuration()

然后,运行这个

sudo python test.py

在带有 Python 3 的 Windows 上,您需要将行更改d = dev.next()d = next(dev)(正如@gabin 的评论中所指出的)

于 2014-09-15T18:11:48.207 回答