PyUSBデバイスが見つかりません

私は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

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

2
ハードウェアとのインターフェースには 'sudo'特権が必要です。
追加された 著者 Hmm,
私も同様の問題を抱えていますが、 usb.core.find()はPythonインタプリタ(またはスクリプト)を sudo で実行する場合にのみ機能します。私が心配していることは、 sudo で走っていないと、最後にSnow Leopardのヒントにはないライブラリが見つかりませんでした。
追加された 著者 Nico,

3 答え

PyUSB経由でデバイスを列挙してみてください。次の例は、すべてのプリンタ(デバイスクラス7)を見つけるためのドキュメントです。

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

うまくいけばあなたのデバイスが含まれているはずで、実際にフィールドが何であるかを見ることができます。あなたのカメラはおそらくクラス0x0eまたは0x10です。

3
追加された
ありがとう、まだデバイスを返しません... $ sudo python eye.py出力:[]
追加された 著者 Hmm,

libusbの自作インストールが私にとって助けになりました

[sudo] brew install libusb
1
追加された

私は同じ問題があり、MacPorts経由でlibusbをインストールしていましたが、pyenv経由でpythonをインストールしていました。

MacPorts経由でインストールされたpythonバージョンを使用していることを確認してください。

which python

上記のコードは、使用しているPythonのバージョンの場所を示すはずです。 /opt/local/bin/python2.7 またはMacPorts経由でインストールしたバージョンを指定する必要があります。

私は問題はpyenvまたはプリインストールされたpython(macOSに同梱)でインストールされたpythonが/usr でlibusbライブラリを探すのに対し、MacPortsは/opt/local <コード>。

0
追加された