我正在运行OS X 10.5,并试图通过PyUSB连接到USB设备,使用以下代码。
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
虽然值错误'device not found'被抛出。OS X System Profiler表示设备产品和供应商id为..
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-ports没有正确安装libusb
尝试通过PyUSB枚举您的设备。这个例子来自文档查找所有打印机(设备类7):
printers = usb.core.find(find_all=True, bDeviceClass=7)
这应该包括你的设备,你可以看到字段实际上是什么。您的相机可能是0x0e或0x10类。
Homebrew install of libusb for me
[sudo] brew install libusb
我有同样的问题,通过MacPorts安装了libusb,但使用的是通过pyenv安装的python。
请确保使用通过MacPorts安装的python版本。
which python
上面的代码应该告诉你正在使用的python版本的位置。它应该是/opt/local/bin/python2.7
或者你通过MacPorts安装的任何版本。
我认为这个问题是因为python通过pyenv或预装python(随macOS发货)在/usr
下寻找libusb库,而MacPorts在/opt/local
下安装库。