2011-12-19 14 views
2

OS X 10.5を実行していて、次のコードを使用してPyUSB経由で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システムプロファイラは、ソリューション

 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 

...などのデバイス製品とベンダーIDを表し:のlibusb-1.0.8をインストールマニュアルを持っていました。 Mac-portsはlibusbを正しくインストールしませんでした。

+0

'usb.core.find()'は、 'sudo'でPythonインタプリタ(またはスクリプト)を実行しているときにのみ同様の問題があります。私が心配しているのは、 'sudo 'で走っていなければ、最後にSnow Leopardのヒントではないライブラリが見つからないということです。 – Nico

+0

ハードウェアとのインターフェースには 'sudo'特権が必要です。 – Hmm

答えて

1

自作のlibusbのインストールは、私は同じ問題を持っていたし、MacPortsのを経由してのlibusbインストールしていたが、pyenvを介してインストールのpythonを使用していた私

[sudo] brew install libusb 
3

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

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

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

+0

ありがとう、まだデバイスを返しません... $ sudo python eye.py 出力:[] – Hmm

0

のために役立ちました。

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

which python 

上記のコードは、使用しているPythonのバージョンの場所を示すはずです。それは/opt/local/bin/python2.7とか、MacPorts経由でインストールしたバージョンとかです。

pythonまたはプリインストールされたpython(macOSに同梱)でインストールされたpythonは/usrのlibusbライブラリを探しますが、MacPortsは/opt/localの下にライブラリをインストールするためです。

関連する問題