我在试着从USB设备上读。要做到这一点,我使用的是PyUSB,它提出了多个问题。
错误
使用libusb- With 32,没有找到任何设备。在发现它的支持有限后,我转而使用libusb1
使用libusb1,可以找到一些设备,但是会引发NotImplementedError: Operation not supported or unimplemented on this platform错误。
设置
我用的是Windows10,这个设备是M10 10磅数字邮政秤
我使用Zadib安装设备驱动程序,设置如下

当设备连接时,我可以在设备管理器中看到它。
我下载了libusb-win32 32和libusb1的源代码,并将它们添加到%PATH%环境变量中(但每次只有一个在%PATH%中,因此我知道正在使用的是哪个)。
.dll文件的路径,PyUSB将引发一个没有找到后端的错误。代码
import usb.core
import usb.util
# find the USB device
for device in usb.core.find(find_all=True):
print(device)完全错误信息
请注意,在出现此错误消息之前,已成功地打印了两个设备。
Traceback (most recent call last):
File "C:\ProgramData\Anaconda3\lib\site-packages\usb\core.py", line 727, in __str__
for configuration in self:
File "C:\ProgramData\Anaconda3\lib\site-packages\usb\core.py", line 1094, in __iter__
yield Configuration(self, i)
File "C:\ProgramData\Anaconda3\lib\site-packages\usb\core.py", line 586, in __init__
configuration
File "C:\ProgramData\Anaconda3\lib\site-packages\usb\backend\libusb1.py", line 757, in get_configuration_descriptor
config, byref(cfg)))
File "C:\ProgramData\Anaconda3\lib\site-packages\usb\backend\libusb1.py", line 595, in _check
raise USBError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBError: [Errno 2] Entity not found
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "reading_dymo_scale.py", line 22, in <module>
print(device)
File "C:\ProgramData\Anaconda3\lib\site-packages\usb\core.py", line 731, in __str__
configuration = self.get_active_configuration()
File "C:\ProgramData\Anaconda3\lib\site-packages\usb\core.py", line 875, in get_active_configuration
return self._ctx.get_active_configuration(self)
File "C:\ProgramData\Anaconda3\lib\site-packages\usb\core.py", line 102, in wrapper
return f(self, *args, **kwargs)
File "C:\ProgramData\Anaconda3\lib\site-packages\usb\core.py", line 236, in get_active_configuration
self.managed_open()
File "C:\ProgramData\Anaconda3\lib\site-packages\usb\core.py", line 102, in wrapper
return f(self, *args, **kwargs)
File "C:\ProgramData\Anaconda3\lib\site-packages\usb\core.py", line 120, in managed_open
self.handle = self.backend.open_device(self.dev)
File "C:\ProgramData\Anaconda3\lib\site-packages\usb\backend\libusb1.py", line 786, in open_device
return _DeviceHandle(dev)
File "C:\ProgramData\Anaconda3\lib\site-packages\usb\backend\libusb1.py", line 643, in __init__
_check(_lib.libusb_open(self.devid, byref(self.handle)))
File "C:\ProgramData\Anaconda3\lib\site-packages\usb\backend\libusb1.py", line 593, in _check
raise NotImplementedError(_strerror(ret))
NotImplementedError: Operation not supported or unimplemented on this platform发布于 2019-01-12 19:20:38
昨晚经过几个小时的反复试验,我找到了解决办法。当然,现在看来很明显
解决方案
libusb-win32/bin/amd64/文件夹添加到%PATH%环境变量中,以便PyUSB可以找到它pip install pyusb
import usb.core
import usb.util
# find the USB device
for device in usb.core.find(find_all=True):
print(device)调试
https://stackoverflow.com/questions/54162872
复制相似问题