4

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 に含まれているものなので、同じ結果が得られるはずです。

4

2 に答える 2

0

私はこれを修正しました。どうやら、rfcat と ipython の両方のバイナリが、/opt/local/bin/python ではなく、python の間違ったバイナリを指していたようです。それをvimで変更したところ、すべて正常に動作しました。

さて、問題は、libusb がデバイスをうまく把握できないように見えることです。最も基本的なコマンドを実行できませんが、それは別の質問です。

于 2012-10-24T05:28:40.677 に答える