PyUSB ValueError: бэкэнд недоступен

Я использую Python 2.7.8 в операционной системе Win 7. Я пытаюсь подключить USB-устройство (32-канальное устройство GPIO Numato) от PyUSB.

Я скачал walac-pyusb-7071ad3 с URL: http://walac.github.io/pyusb

Я останавливаюсь на получении "ValueError: Backend недоступен". Может ли какой-нибудь эксперт по Python сказать мне, где это не так?

Вот код:

import sys
import usb
import usb.core
import usb.util
import usb.backend.libusb1

backend = usb.backend.libusb1.get_backend(find_library=lambda C:'\Python27')
numato = usb.core.find(idVendor=00000006,idProduct = 00000000, backend=backend)

Вот сообщение об ошибке Python:

Traceback (most recent call last):
  File "C:\Python_Yang\PyUSBNumato.py", line 19, in <module>
    numato = usb.core.find(idVendor=00000006,idProduct = 00000000, backend=backend)
  File "C:\Python_Yang\usb\core.py", line 1199, in find
    raise ValueError('No backend available')
ValueError: No backend available

3 ответа

У меня была такая же ошибка, но мне не удалось использовать find_library(TypeError: get_backend() got an unexpected keyword argument 'find_library'). Я полагаю, хотя вы этого не сказали, что backend не является действительным (None).

У вас есть реализация libusb1 в пути C:\Python27? Я полагаю, вы не установили его в папку Python, и если да, то ваш ответ: бэкэнд PyUSB недоступен.

В противном случае, без использования find_library, вы должны иметь реализацию libusb1, доступную в PATH переменная окружения. Я сделал это так (вы можете заменить os.getcwd() с вашим местоположением):

def get_backend_libusb01():
    libusb01_location = os.getcwd()

    # load-library (ctypes.util.find_library) workaround: also search the current folder
    is_current_folder_in_search_path = True
    if None == usb.backend.libusb0.get_backend():
        is_current_folder_in_search_path = libusb01_location in os.environ['PATH']
        if not is_current_folder_in_search_path:
            os.environ['PATH'] += os.pathsep + libusb01_location

    backend = usb.backend.libusb0.get_backend()

    if not is_current_folder_in_search_path:
        os.environ['PATH'] = os.environ['PATH'].replace(os.pathsep + libusb01_location, "")

    return backend

У меня возникла эта проблема, и я переключил оболочки Python libusb, и он ушел: https://github.com/vpelletier/python-libusb1

Я сделал: - Загрузил и установил libusb-win32-devel-filter-1.2.6.0.exe. Он должен работать.

От:

Пьюсб на виндовс - бэкэнда нет

И действительно работает для меня.

Другие вопросы по тегам