如何让 Python 找到 `libusb`? `pyusb` 需要它作为后端

How does one get Python to find `libusb`? `pyusb` needs it for a backend

我正在尝试使用 Python 2.7 和 PyUSB 与 National Instruments DAQ 板通信。我使用的是 MacBook Pro 和 运行 Yosemite 10.10.4。我已经能够安装 Python 和 PyUSB 包,没有任何明显的问题,但是当我尝试使用 PyUSB 时,它找不到后端库:

>>> import usb.core
>>> usb.core.find()

Traceback (most recent call last):
  File "<pyshell#83>", line 1, in <module>
    usb.core.find()
  File        "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/usb/core.py", line 1199, in find
    raise ValueError('No backend available')
ValueError: No backend available

我尝试以多种不同的方式安装 libusb-1.0,但 Python 似乎找不到任何名为 libusb 的模块。我试过了:

  1. 正在从 SourceForge 下载 tarball

  2. 安装 brew 并使用 "brew install libusb-compat" 和 "brew link libusb-compat"

  3. 使用 sys.path.append("/usr/local/lib") 帮助 Python 找到 libusb

这就是我绝望的地方:

  1. 使用 pip 到 "pip install libusb"(pip 甚至可以与库一起使用吗?)

  2. 正在将 /usr/local/lib 的内容复制到 libusb-1.0.dylib 和其他 libusb 文件所在的不同位置,我认为 Python 可能正在查找为此。

然而,当我在 IDLE 或 iPython 中调用 help("Modules") 时,没有任何类似 libusb 的东西出现并且调用 usb.core.find() 继续抱怨缺少后端。

如何让 Python 找到 libusb?它没有出现在 help("Modules") 中甚至与 usb.core.find() 抱怨缺少后端有关吗?

到目前为止,我在这方面度过了愉快的一天,并阅读了 20 篇不错的问答,但无济于事。在这一点上,任何建议都将非常受欢迎。此外,这是我对 Whosebug 提出的第一个问题,所以请让我澄清一下我是否遗漏了重要的启用信息或问题结构不当。谢谢。

你试过了吗brew install libusblibusb-compat 库只是一个允许为 libusb 0.1 编写的应用程序与 libusb 1.0 一起工作的库。我认为 PyUSB 这些天已经可以与 libusb 1.0 一起使用了,所以它不需要像那样的一些兼容层。您可能还需要使用从 brew 安装的 python 版本,而不是使用您现在使用的任何版本;我不确定。