2012-10-23 24 views
3

我使用python 2.7運行Mac OS X 10.8。我用MacPorts安裝了libusb,它確實有效(測試我的導入usb.core & usb.util)。然而,每次我試圖訪問一個設備,我得到以下錯誤:在Mac OS X上的libusb - 「ValueError:No backend available」

>>> 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的問題。當我開始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]: 

編輯:Jesis基督,再次。如果我啓動python,然後運行以下命令:

>>> from IPython.frontend.terminal.ipapp import launch_new_instance 
>>> launch_new_instance() 

我得到一個ipython提示符。當它在我導入USB並找到我的設備時,沒有後端錯誤。

如果我在python中導入usb,然後執行上面的命令來獲得ipython提示符,然後找到我的設備,我得到一個「name」usb'not defined「錯誤。然後,我導入USB並找到我的設備,然後沒有錯誤。

在這一點上,我非常困惑。上面的命令正是/ usr/local/bin/ipython包含的,所以我應該得到相同的結果。

+0

這似乎是http://stackoverflow.com/questions/5152133/pyusb-backend-not-accessible?rq=1相同的問題,雖然它在我的python外殼,只是不在rfcat。 –

回答

0

我已經修復了這個問題。顯然,rfcat和ipython二進制文件都指向python的錯誤二進制文件 - 而不是/ opt/local/bin/python。在vim中改變了這一點,它運行良好。

現在,問題是libusb似乎無法很好地保持設備 - 它不能完成最基本的命令,但這是另一個問題。

0

MacPorts在/opt/local下安裝libusb。看起來你正在使用安裝在/usr/local下的ipython,我猜想它不是通過MacPorts安裝的。

/usr/local/bin/ipython可能會在/usr/local/include/下查找libusb庫,而不是/opt/local/include/,它由MacPorts安裝。

您可以通過安裝MacPorts的,因爲的IPython它就能查找庫在/ opt /地方被使用的MacPorts還安裝或@Slava回答,您可以修改rfcat和IPython都指向/opt/local/