PyUSB ValueError: No hay backend disponible

Estoy ejecutando Python 2.7.8 en el sistema operativo Win 7. Estoy tratando de comunicar un dispositivo USB (dispositivo GPIO de 32 canales Numato) por PyUSB.

Descargué walac-pyusb-7071ad3 desde la URL: http://walac.github.io/pyusb

Me detengo en recibir “ValueError: No hay backend disponible”. ¿Podría algún experto de Python decirme dónde está mal?

Aquí está el código:

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) 

Aquí está el mensaje de error de Python:

 Traceback (most recent call last): File "C:\Python_Yang\PyUSBNumato.py", line 19, in  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 

Tuve el mismo error, pero no logré usar find_library ( TypeError: get_backend() got an unexpected keyword argument 'find_library' ). Supongo que, aunque no lo dijiste, ese backend no es válido ( None ).

¿Tiene la implementación libusb1 en la ruta C:\Python27 ? Supongo que no lo instaló en la carpeta de Python y, si es así, está su respuesta: el backend de PyUSB no es accesible .

De lo contrario, sin usar find_library , debe tener la implementación libusb1 disponible en la PATH entorno PATH . Lo hice así (puedes reemplazar os.getcwd() con tu ubicación):

 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 

Tuve este problema, y ​​cambié las envolturas libusb de python y desaparecieron: https://github.com/vpelletier/python-libusb1

Lo hice: – Descargue e instale libusb-win32-devel-filter-1.2.6.0.exe. Deberia de funcionar.

Desde:

Pyusb en windows – no hay backend disponible

Y realmente funciona para mí.