2017-09-25 82 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它丟失了那些默認值。

所以,如果你有類似的問題,你可能想看看這些變量。