Почему PyUSB не работает на Windows 10 несмотря на правильную установку зависимости? - PullRequest
0 голосов
/ 11 января 2020

Я использую 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
...