Я использую Python 3.8.
Я обнаружил, что PyUSB предлагается в качестве пути; однако, я попробовал это, но это не находит бэкэнда. Включенные бэкэнды предназначены для libusb0.1, libusb1.0 и OpenUSB.
libusb0.1 является устаревшим.
libusb1.0 является текущим; однако установка его через pip не приводит к работе PyUSB (он по-прежнему не находит бэкэнд).
OpenUSB - это форк libusb1.0, который ориентирован на поддержку многопоточности, но не имеет версии windows .
В качестве ответа я бы принял способ заставить PyUSB работать с libusb1.0; или другую библиотеку python, которая работает на windows. Минимальная необходимая функциональность - это перечисление и итерация устройств, получение определенного c устройства по идентификатору, получение информации об устройстве (в частности, идентификатор из перечисленного списка), поиск и копирование в / из файловой системы устройства.
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:\Users\scott\.p2\pool\plugins\org.python.pydev.core_7.5.0.202001101138\pysrc\_pydev_bundle\pydev_umd.py", line 167, in runfile
execfile(filename, namespace)
File "C:\Users\scott\.p2\pool\plugins\org.python.pydev.core_7.5.0.202001101138\pysrc\_pydev_imps\_pydev_execfile.py", line 25, in execfile
exec(compile(contents+"\n", file, 'exec'), glob, loc)
File "C:\Code\Py\Path\PhoneSync\phone_sync.py", line 12, in <module>
devices = list(usb.core.find(find_all=True))
File "C:\Users\scott\AppData\Local\Programs\Python\Python38\lib\site-packages\usb\core.py", line 1263, in find
raise NoBackendError('No backend available')
usb.core.NoBackendError: No backend available