Pyusb sous windows - aucun backend disponible

j'essaie d'avoir mon interface d'application python avec un périphérique NFC via USB. La meilleure option semble être pyusb, mais je n'arrive pas à le connecter au backend libusb. Je reçois des

ValueError: Pas de backend disponible

j'ai regardé la trace de la pile, et j'ai trouvé que usb/backend/libusb10.py (qui fait partie de pyusb) essaye de charger libusb-1.0.dll pour l'utiliser comme backend, mais il ne peut pas le trouver. Il n'est pas que son pas dans mon chemin, ce n'est pas sur mon ordinateur!

j'ai installé libusb-win32 ( http://libusb.org/wiki/libusb-win32 ), mais le répertoire qui en résulte ne semble inclure que libusb0.DLL. Où est libusb-1.0.dll???!

j'aimerais savoir où trouver cette dll, ou même une suggestion différente pour faire travailler pyusb sur Windows 7.

22
demandé sur Derlin 2012-12-08 04:25:04

6 réponses

Télécharger et installer libusb-win32-devel-filtre-1.2.6.0.exe . Il devrait fonctionner.

12
répondu beebek 2015-07-10 03:46:31

j'ai eu un problème similaire récemment en essayant de parler à un périphérique USB que je développe. J'ai parcouru le web à la recherche de libusb-1.0.dll et pas de chance. J'ai trouvé du code source, mais rien de construit et prêt à installer. J'ai fini par installer les binaires libusb-win32, qui est le libusb0.DLL.

PyUSB recherche libusb-1.0, libusb0, et openUSB backends.

libusb0.dll était déjà sur mon système, mais quelque chose n'était pas encore mis en place, do PyUSB ne marchait pas.

j'ai suivi les instructions ici pour télécharger et installer le pilote en utilisant les outils GUI fournis pour installer le pilote de filtre, et L'Assistant INF. Remarque, ça n'a pas marché jusqu'à ce que j'ai lancé le magicien INF.

je suis assez nouveau à la programmation et j'ai trouvé le manque de documentation claire/exemples pour ficeler tout cela ensemble plutôt frustrant.

6
répondu Dave L. 2012-12-26 22:04:16

j'utilise Python 2.6.5, libusb-win32-device.bin-0.1.12.1 et pyusb-1.0.0-a0 sur un système windows XP et j'ai continué à recevoir ValueError: No backend available .

comme il n'y avait pas d'aide réelle sur le web pour ce problème, j'ai passé beaucoup de temps à trouver que ctypes util.py utilise la variable Path pour trouver le fichier de la bibliothèque. Mon path n'incluait pas windows\system32 et PYUSB n'a pas trouvé la bibliothèque. J'ai mis à jour la variable path et maintenant L'USB fonctionne.

5
répondu George G 2013-04-30 21:17:26

" il existe deux versions de l'API libusb: l'actuelle API libusb-1.0 et son prédécesseur libusb-0.1 ."( http://www.libusb.org / ) " libusb-win32 est un port de la bibliothèque USB libusb-0.1 pour les systèmes D'exploitation Microsoft Windows". "Télécharger la dernière version tarball" de la même page ( 1.0.9 est la version actuelle) pour avoir libusb-1.0 équivalent, vous trouverez un dossier Win32 , où vous trouverez votre libusb-1.0.dll pour jouer avec! Vous pouvez même le construire: http://www.libusb.org/wiki/windows_backend .

EDIT Vous devez le construire (télécharger de / http://sourceforge.net/projects/libusb/files/libusb-1.0 / ) depuis le tarball est de 2012, alors que les dernières sources sont de 2014-06-15.

1
répondu Liviu 2014-10-24 09:10:51

pour vous connecter à votre périphérique NFC via USB en utilisant PYUSB, vous aurez besoin d'installer le backend pour ce périphérique. Je ne pense pas qu'il y ait de backend pour un autre périphérique que le libusb.

pour construire un backend. Vous aurez besoin de connaître le pilote (.sys) pour votre périphérique, de sorte que vous pouvez écrire une DLL enveloppante pour exposer les fonctionnalités dans le périphérique. Votre DLL devrait avoir une méthode pour trouver périphérique basé sur PID & VID, une autre méthode pour ouvrir périphérique et un autre méthode pour envoyer des données et ainsi de suite...

0
répondu tbenisa 2014-08-06 19:01:12

Juste au cas où:

Je n'ai pas essayé cela sur Windows mais j'ai dû configurer le chemin DYLD_LIBRARY_PATH pour contourner cette erreur sur le Macintosh.

export DYLD_LIBRARY_PATH= / opt/local / lib

Discussion sur la question de savoir s'il faut ou non définir cette variable est ici .

0
répondu fixxxer 2017-03-20 10:18:14