如何设置的libusb的畅达Python环境中的Mac
问题描述:
所以我想在畅达环境中使用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
以及系统范围(libusb
和libusb-compat
)通过brew
在conda环境内安装libusb
和libusb1
,但这些都没有帮助。
答
我想清楚发生了什么,所以我不妨回答我自己的问题 - 别人可能会觉得它有用。
由于我不记得了的原因,当我试图编译某些东西时,我添加了一些路径到DYLD_FALLBACK_LIBRARY_PATH。根据dyld的手册,DYLD_FALLBACK_LIBRARY_PATH的缺省值是$(HOME)/ lib:/ usr/local/lib:/ lib:/ usr/lib它覆盖了libusb的位置,但是看起来像扩展DYLD_FALLBACK_LIBRARY_PATH它丢失了那些默认值。
所以,如果你有类似的问题,你可能想看看这些变量。
pyusb如何尝试找到后端? – darthbith
它似乎在使用'ctypes.util.find_library' – Milad
[此问题](https://*.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