我正在使用Python 3.8。
我发现建议将PyUSB作为要走的路;但是,我已经尝试过了,但它没有找到后端。包含的后端适用于libusb0.1,libusb1.0和OpenUSB。
libusb0.1 是遗留的。
libusb1.0 是最新的;但是,通过 pip 安装它并不能使 PyUSB 工作(它仍然找不到后端(。
OpenUSB是libusb1.0的一个分支,专注于多线程支持,但没有Windows版本。
作为答案,我会接受一种让PyUSB与libusb1.0一起工作的方法;或者一个在Windows上运行的不同python库。所需的最低功能是设备的枚举和迭代,按 ID 获取特定设备,获取设备信息(特别是枚举列表中的 ID(,浏览和复制到设备的文件系统。
PyUSB,带或不带libusb1 (1.7.1)
import usb
devices = list(usb.core.find(find_all=True))
print(devices)
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "C:Usersscott.p2poolpluginsorg.python.pydev.core_7.5.0.202001101138pysrc_pydev_bundlepydev_umd.py", line 167, in runfile
execfile(filename, namespace)
File "C:Usersscott.p2poolpluginsorg.python.pydev.core_7.5.0.202001101138pysrc_pydev_imps_pydev_execfile.py", line 25, in execfile
exec(compile(contents+"n", file, 'exec'), glob, loc)
File "C:CodePyPathPhoneSyncphone_sync.py", line 12, in <module>
devices = list(usb.core.find(find_all=True))
File "C:UsersscottAppDataLocalProgramsPythonPython38libsite-packagesusbcore.py", line 1263, in find
raise NoBackendError('No backend available')
usb.core.NoBackendError: No backend available
为我解决问题的是:
下载 libusb1.0.dll 在这里: libusb
对于我的 64 位系统转到下载文件夹中的 MinGW64/dll 将 libusb-1.0.dll 复制到 C:\Windows\System32 中