【问题标题】:How to setup libusb for a conda Python environment in Mac如何在 Mac 中为 conda Python 环境设置 libusb
【发布时间】:2018-03-06 18:23:09
【问题描述】:

所以我尝试在 conda 环境中使用 pyusb,但失败并出现以下错误:

>>> import usb.core
>>> usb.core.find()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/foo/Developer/anaconda3/envs/delme/lib/python3.6/site-packages/usb/core.py", line 1263, in find
    raise NoBackendError('No backend available')

我假设发生这种情况是因为它找不到 libusb。我尝试通过pip 在conda 环境中安装libusb 和libusb1,并通过brew 在系统范围内(libusb 和libusb-compat)安装,但这些都没有帮助。

【问题讨论】:

  • pyusb是如何寻找后端的?
  • 好像在用ctypes.util.find_library
  • this question 帮助了。如果我手动将/usr/local/lib 添加到DYLD_LIBRARY_PATH 环境变量find_library 可以看到libusb,但人们会认为它应该已经存在了。
  • 我知道发生了什么。由于我不记得的原因,我在尝试编译某些东西时添加了一些到 DYLD_FALLBACK_LIBRARY_PATH 的路径。根据 dyld 的手册,DYLD_FALLBACK_LIBRARY_PATH 的默认值是 $(HOME)/lib:/usr/local/lib:/lib:/usr/lib 它涵盖了 libusb 的位置,但看起来通过扩展 DYLD_FALLBACK_LIBRARY_PATH 它丢失了这些默认值。跨度>
  • 太棒了!恭喜你弄明白了!您可以在此处发布答案以关闭此问题。

标签: python conda libusb pyusb


【解决方案1】:

我弄清楚了发生了什么,所以我不妨回答我自己的问题 - 其他人可能会觉得它有用。

由于我不再记得的原因,我在尝试编译某些东西时添加了一些到 DYLD_FALLBACK_LIBRARY_PATH 的路径。根据 dyld 的手册,DYLD_FALLBACK_LIBRARY_PATH 的默认值是 $(HOME)/lib:/usr/local/lib:/lib:/usr/lib 它涵盖了 libusb 的位置,但看起来通过扩展 DYLD_FALLBACK_LIBRARY_PATH 它丢失了这些默认值。

因此,如果您有类似的问题,您可能需要查看这些变量。

【讨论】:

    猜你喜欢
    • 2019-07-31
    • 2019-05-28
    • 1970-01-01
    • 2019-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    相关资源
    最近更新 更多