Question

I am running OS X 10.5 and am trying to connect to a USB device via PyUSB with the following code.

   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

Though the value error 'device not found' is thrown. OS X System Profiler denotes the devices product and vendor id as..

      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

Solution: Had to manual install libusb-1.0.8. Mac-ports didn't install libusb correctly.

Was it helpful?

Solution

Homebrew install of libusb helped for me

[sudo] brew install libusb

OTHER TIPS

Try enumerating your devices via PyUSB. This example is from the docs to find all printers (device class 7):

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

This should hopefully include your device and you can see what the fields actually are. Your camera is probably class 0x0e or 0x10.

I had the same issue and had installed libusb via MacPorts but was using python installed via pyenv.

Make sure you use the python version installed via MacPorts.

which python

The above code should tell you the location of python version you are using. It should say /opt/local/bin/python2.7 or whichever version you have installed via MacPorts.

I think the issue is because python installed via pyenv or pre-installed python (shipped with macOS) looks for the libusb library under /usr whereas MacPorts installs the library under /opt/local.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top