2011-03-22 150 views
4

因此,我安裝了Pyusb 1.0.0-alpha-1
在Windows下,我無法獲得任何USB設備的句柄。在Windows 7上的Pyusb無法找到任何設備

>>> import usb.core 
>>> print usb.core.find() 
None 

我有1個USB設備(idVendor = 0x04d8,idProduct = 0x0042)插入,我試圖usb.core.find(idVendor=0x04d8, idProduct=0x0042),但失敗了。

在Ubuntu下,使用相同版本的pyusb和python(2.6),我能夠使用該代碼成功找到設備並與之通信。

那麼我怎樣才能讓pyusb在Windows 7上找到usb設備呢?

+0

這可能是一個愚蠢的問題,但驅動程序是否正確安裝?它看起來像PyUSB依賴於libusb。見https://github.com/karlp/karlnet/tree/usbmaster/producers/pyhid/ – 2011-03-22 00:47:54

+1

@BrianLy這實際上是一個很好的問題,謝謝!我做了一點修補,發現libusb0.1後端正在被加載。事實證明,我使用的是32位Python,並安裝了64位libusb1.0 dll。我用32位版本替換了現在的usb.core.find()。 – Ponkadoodle 2011-03-22 01:34:16

+0

但是,我現在有其他錯誤。當我嘗試'device.detach_kernel_header(0)'時,我得到'USBError:不支持或未在此平臺上實現的操作。 – Ponkadoodle 2011-03-22 01:35:07

回答

4

Libusb要求您爲每個要使用它的設備安裝一個特殊的驅動程序。這通常需要您編寫包含設備USB ID的.inf文件。只有安裝了驅動程序和inf文件,libusb才能夠「看見」你的設備。

+3

inf文件需要在哪裏存活?我已經按照你的建議完成了,但仍然獲得與OP相同的結果 – Chris 2013-04-03 15:19:09

0

請參閱Turbo J's answer。要安裝設備的USB驅動程序libusb我發現了兩個選項:

  • 使用libusb-win32inf-wizard.exe創建INF文件,然後使用install-filter-win.exe安裝libusb的驅動程序爲您的設備。

  • 使用zadig(簡單)

    • 如果沒有顯示設備,選項>列出所有設備
    • 選擇libusb-win32作爲要安裝的驅動程序