尽管我在路径中安装了 LibUSB 1,并且在代码的前面加载得很好,但我在 pyusb 中收到了 no backend 错误。我的代码是
import usb.core
import usb.util
import usb.backend.libusb1
import sys
class USBConnection:
def __init__(self, vendor_id, product_id):
usb.backend.libusb1.get_backend(find_library=lambda x: 'C:\Windows\System32\libusb-1.0.dll')
self.device = usb.core.find(idVendor=vendor_id, idProduct=product_id)
if self.device is None:
sys.exit('Could not find device')
else:
print 'Device detected'
self.device.set_configuration()
self.configuration = self.device.get_active_configuration()
self.description = self.configuration[(0, 0)]
self.end_point = usb.util.find_descriptor(self.description, custome_match=lambda e: usb.util.endpoint_direction
(e.bEndpointAddress) == usb.util.ENDPOINT_OUT)
assert self.end_point is not None
def write(self, data):
self.end_point.write(data)
if __name__ == '__main__':
channel = USBConnection(vendor_id='2A19', product_id='1002')
运行此代码会返回
Traceback (most recent call last):
File "C:/Users/me/PycharmProjects/usbfreqsweep/usbsweep.py", line 126, in <module>
channel = USBConnection(vendor_id='2A19', product_id='1002')
File "C:/Users/me/PycharmProjects/usbfreqsweep/usbsweep.py", line 110, in __init__
self.device = usb.core.find(idVendor=vendor_id, idProduct=product_id)
File "C:\Python27\lib\site-packages\usb\core.py", line 1263, in find
raise NoBackendError('No backend available')
usb.core.NoBackendError: No backend available
事实上,我的路径中确实有 C:\windows\system32,其中包含 llibusb-1.0.dll 并安装了最新版本的 libusb1,但我仍然收到此错误。尽管事实是这样
usb.backend.libusb1.get_backend(find_library=lambda x: 'C:\Windows\System32\libusb-1.0.dll')
不返回错误。更奇怪的是,设置
backend = usb.backend.libusb1.get_backend(find_library=lambda x: 'C:\Windows\System32\libusb-1.0.dll')
并在调试器中执行返回值为 None 的后端。有没有好的方法来解决这个问题?我正在使用 Windows 7,如果有帮助的话。