2017-09-25 44 views
0

所以我想在畅达环境中使用pyusb但它失败,以下错误:如何设置的libusb的畅达Python环境中的Mac

>>> 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以及系统范围(libusblibusb-compat)通过brew在conda环境内安装libusblibusb1,但这些都没有帮助。

+0

pyusb如何尝试找到后端? – darthbith

+0

它似乎在使用'ctypes.util.find_library' – Milad

+0

[此问题](https://stackoverflow.com/questions/31148387/which-paths-does-python-ctypes-module-search-for-l- library-on -mac-os)帮了忙。如果我手动将'/ usr/local/lib'添加到'DYLD_LIBRARY_PATH' env变量find_library可以看到libusb,但有人会认为它应该已经存在了。 – Milad

回答

0

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

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

所以,如果你有类似的问题,你可能想看看这些变量。