Mac OS X 上的 libusb - "ValueError: No backend available"



我正在使用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有关。当我启动iPython作为root并导入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 Christ再次。如果我启动Python,请运行以下内容:

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

我得到了一个ipython提示。当我导入USB并找到设备时,没有后端错误。

如果我在Python中导入USB,则在上面执行这些命令以获取IPYTHON提示,然后找到我的设备,我会得到一个"名称'USB'未定义"错误。然后,我导入USB并找到我的设备,然后没有错误。

在这一点上,我非常困惑。上面的命令恰好是/usr/local/bin/ipython所包含的内容,因此我应该获得相同的结果。

我已经固定了。显然,rfcat和ipython二进制文件都指出了python的错误二进制文件 - 非/opt/local/bin/python。在vim中更改了,一切都很好。

现在,问题是Libusb似乎无法很好地掌握该设备 - 它不能执行最基本的命令,但这是另一个问题。

macports在/opt/local下安装libusb。看起来您正在使用/usr/local下安装的ipython,我猜这不是通过Macports安装的。

/usr/local/bin/ipython可能在 /usr/local/include/下寻找libusb库,而不是由macports安装的 /opt/local/include/

您可以通过Macports安装IPYTHON,因为它将能够在/OPT/LOCAL下查找库,这些库也可以使用Macports安装,或者是@Slava回答的,您可以修改RFCAT和IPYTHON,以指向/opt/local/

相关内容

  • 没有找到相关文章

最新更新