PyUSB Не могу найти устройство - PullRequest
2 голосов
/ 19 декабря 2011

Я использую OS X 10.5 и пытаюсь подключиться к USB-устройству через PyUSB с помощью следующего кода.

   import usb.core, time, usb

   dev = usb.core.find(idVendor=0x054c,idProduct=0x0155)
    if dev is None:
      raise ValueError('Device not found')           # if device not found report an error

Хотя выдается сообщение об ошибке «устройство не найдено».OS X System Profiler обозначает идентификатор продукта и поставщика устройства как ..

      EyeToy USB camera Namtai:

      Product ID: 0x0155
      Vendor ID: 0x054c  (Sony Corporation)
      Version: 1.00
      Speed: Up to 12 Mb/sec
      Manufacturer: Sony corporation
      Location ID: 0x06200000 / 3
      Current Available (mA): 500
      Current Required (mA): 500

Решение : Пришлось вручную установить libusb-1.0.8.Mac-порты неправильно установили libusb.

Ответы [ 3 ]

3 голосов
/ 19 декабря 2011

Попробуйте перечислить ваши устройства через PyUSB. Этот пример взят из документации, чтобы найти все принтеры (класс устройства 7):

printers = usb.core.find(find_all=True, bDeviceClass=7)

Надеемся, что это должно включать ваше устройство, и вы можете увидеть, какие поля на самом деле. Ваша камера, вероятно, класса 0x0e или 0x10.

1 голос
/ 04 апреля 2012

Доморощенная установка libusb помогла мне

[sudo] brew install libusb
0 голосов
/ 07 мая 2017

У меня была та же проблема, и я установил libusb через MacPorts, но использовал python, установленный через pyenv.

Убедитесь, что вы используете версию Python, установленную через MacPorts.

which python

Приведенный выше код должен указать вам расположение используемой вами версии Python. В нем должно быть указано /opt/local/bin/python2.7 или любая другая версия, установленная вами через MacPorts.

Я думаю, что проблема в том, что python, установленный через pyenv или предустановленный python (поставляется с macOS), ищет библиотеку libusb в /usr, тогда как MacPorts устанавливает библиотеку в /opt/local.

...