Python 2.7でMac OS X 10.8を実行しています。MacPorts で libusb をインストールしましたが、動作します (usb.core と usb.util のインポートをテストしました)。ただし、デバイスにアクセスしようとするたびに、次のエラーが発生します。
>>> dev=usb.core.find(idVendor=0x1d50, idProduct=0x6048)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Library/Python/2.7/site-packages/usb/core.py", line 829, in find
raise ValueError('No backend available')
ValueError: No backend available
など、他のいくつかのことを試しましたがimport usb.backend
、それが何をすべきかわかりませんでした。3日間作業した後も同じ結果です。
事前に助けてくれてありがとう!
編集:これは実際に変更されました。どのファイルをどのように変更したかはわかりませんが、次のように機能するようになりました。
>>> import usb
>>> usb.core.find(idVendor=0x1d50, idProduct=0x6048)
<usb.core.Device object at 0x10eb2f2d0>
ただし、実行するとsudo rfcat -r
(libusbを機能させる本当の目的です)、まだ次のエラーメッセージが表示されます。
Error in resetup():ValueError('No backend available',)
編集:問題はipythonにあるようです。root として ipython を起動して USB をインポートすると、デバイスが見つかりません。
In [1]: import usb
In [2]: import usb.util
In [3]: import usb.core
In [4]: usb.core.find(idVendor=0x1d50, idProduct=0x6048)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-4-7884198c46c2> in <module>()
----> 1 usb.core.find(idVendor=0x1d50, idProduct=0x6048)
/Library/Python/2.7/site-packages/usb/core.pyc in find(find_all, backend, custom_match, **args)
827 break
828 else:
--> 829 raise ValueError('No backend available')
830
831 k, v = args.keys(), args.values()
ValueError: No backend available
In [5]:
編集:イエス・キリスト、もう一度。Python を起動したら、次のコマンドを実行します。
>>> from IPython.frontend.terminal.ipapp import launch_new_instance
>>> launch_new_instance()
ipython プロンプトが表示されます。その中でusbをインポートして自分のデバイスを見つけたとき、バックエンドエラーはありません。
USB を Python にインポートし、上記のコマンドを実行して ipython プロンプトを表示し、デバイスを見つけると、「名前 'usb' が定義されていません」というエラーが表示されます。次に、usb をインポートしてデバイスを見つけると、エラーは発生しません。
この時点で、私は非常に混乱しています。上記のコマンドはまさに /usr/local/bin/ipython に含まれているものなので、同じ結果が得られるはずです。