2012-12-08 74 views
20

我想通過USB與我的Python應用程序接口與NFC設備。 最好的選擇似乎是pyusb,但我不能讓它連接到libusb後端。 我不斷收到在窗戶上Pyusb - 沒有後端可用

ValueError: No backend available

我看堆棧跟蹤,發現usb/backend/libusb10.py(這是pyusb的一部分)試圖加載libusb-1.0.dll作爲後端使用,但它無法找到它。這不是它不在我的道路上,它不在我的電腦裏!

我已經安裝了libusb-win32(http://libusb.org/wiki/libusb-win32),但生成的目錄似乎只包含libusb0.dll。 libusb-1.0.dll在哪裏?

我很想知道無論是在哪裏得到該DLL,甚至是不同的建議,得到pyusb能在Windows 7

回答

6

工作,我也有類似的問題,最近試圖跟我開發一個USB設備。我搜尋網絡尋找libusb-1.0.dll的,並沒有運氣。我找到了源代碼,但沒有構建並準備好安裝。我最終安裝了libusb-win32二進制文件,它是libusb0.dll。

PyUSB將搜索libusb-1.0,libusb0和openUSB後端。

libusb0.dll已經存在於我的系統中,但仍有些東西仍未正確設置,PyUSB無法正常工作。

我按照說明here下載並使用提供的GUI工具安裝過濾器驅動程序和INF嚮導來安裝驅動程序。請注意,在我運行INF嚮導之前它不工作。

我很新的編程,我發現缺乏明確的文檔/示例將這一切串起來相當令人沮喪。

+0

是的,運行inf嚮導並選擇您的設備啓動。 – jonincanada

+0

@jonincanada似乎我遇到了與Garrett Hyde相同的問題。但不同的是,我已經下載並解壓縮文件(libusb1.0.20),然後複製一個dll文件,具體是(libusb-1.0.dll)並將其複製到系統32;然後我將libusb-1.lib複製到python34/Lib。仍然存在'沒有後端'的錯誤,那麼你能幫我解決問題嗎? – Socre

4

我在Windows XP系統上使用Python 2.6.5,libusb-win32-device.bin-0.1.12.1pyusb-1.0.0-a0,並不斷收到ValueError: No backend available

由於這個問題在網上沒有任何真正的幫助,我花了很多時間發現ctypes util.py使用Path變量來查找庫文件。我的path沒有包含windows\system32PYUSB未找到該庫。我更新了path變量,現在USB正在工作。

+0

鑑於這是關於XP(和OP是要求Re:Windows 7),這可能是更好的評論。 –

+0

我將當前文件夾添加到'PATH'。 – Liviu

+0

這就是訣竅!需要將libusb-1.0.dll放入system32目錄。確保它適合您的系統(32位或64位) – user1495323

0

要使用PYUSB通過USB連接到您的NFC設備,您需要安裝該設備的後端。我不認爲除了libusb設備以外的任何設備都有後端。

構建後端。您需要知道您的設備的驅動程序(.sys文件),以便您可以編寫一個包裝DLL來公開設備中的功能。您的DLL將不得不有一個方法來找到設備基於PID & VID,另一種方法來打開設備和另一種方法來發送數據,等等......

1

「有兩個版本的libusb API:當前libusb-1.0 API及其舊版前驅libusb-0.1「。 (http://www.libusb.org/)「libusb-win32是Microsoft Windows操作系統的USB庫012​​的端口」。從same page1.0.9是當前版本)中下載最新版本的tarball,使其具有libusb-1.0等效功能,您將找到一個文件夾Win32,您將在其中找到要玩的libusb-1.0.dll!你甚至可以建立它:http://www.libusb.org/wiki/windows_backend

編輯 你必須建立它(從/ http://sourceforge.net/projects/libusb/files/libusb-1.0/下載),因爲壓縮包是從2012年開始,而最新的來源是從2014年6月15日。

0

以防萬一:

我沒有嘗試過在Windows操作系統上,但我不得不設置DYLD_LIBRARY_PATH路徑以規避在Macintosh上的這個錯誤。

export DYLD_LIBRARY_PATH=/opt/local/lib

討論是否設置此變量爲here