Pyusb instalado, todavía: 'ImportError: ningún módulo llamado core'

11

En mi Raspberry Pi lo instalé libusby a pyusbtravés de sudo apt-get install libusb-dev python-usb.

Pero ejecutar un código de Python ( pyrow , para leer datos de una máquina de remo) me da este error en import usb.core:

ImportError: ningún módulo llamado core

Este error sugiere que no lo instalé pyusbcorrectamente, así que lo volví a hacer manualmente (descargándolo y ejecutándolo sudo python setup.py install), pero esto no lo solucionó.

Creo que el problema podría tener algo que ver con el directorio /usr/local/lib/python2.7/dist-packages/usb: en mi computadora portátil Ubuntu esta carpeta existe y contiene (entre otros) core.py, pero la carpeta en la Raspberry Pi parece no existir. lsen el directorio padre enumera la carpeta, pero montarla no funciona ...

¿Cómo soluciono este problema? ¿Tengo que usar una versión específica de pyusb en Raspberry Pi?

  • Hardware: Raspberry Pi modelo B
  • SO: Raspbian Wheezy (compilación 09/02/2013)
A. Goossens
fuente

Respuestas:

8

Siga los pasos y vea si funciona.

$ sudo apt-get update
$ sudo apt-get install python-pip  #if you don't have pip installed already
$ sudo pip install pyusb
SteveIrwin
fuente
'sudo pip install pip' me da "Requisito ya satisfecho". Su actualización da "Requisito ya actualizado". También probé una instalación manual de pyusb-1.0 como Krzysztof Adamski sugirió, pero el problema aún existe. ¿Podría funcionar realizar los pasos anteriores en una instalación nueva?
A. Goossens
omita el paso sudo apt-get install python-pi. Simplemente escriba sudo pip install pyusb que debería funcionar para usted.
SteveIrwin
Lo siento, mal escrito. Quise decir 'sudo pip install pyusb' da "Requisito ya satisfecho".
A. Goossens
1
@ A.Goossens: Probablemente primero deba desinstalar pyusblo que instaló anteriormente. Si bien es fácil para el paquete que instaló apt-get, puede ser más difícil para el paquete instalado manualmente.
Krzysztof Adamski
Como no podía recordar qué versiones de pyusb y libusb ya instalé, hice una nueva instalación de raspbian y utilicé los pasos de Stevelrwin. ¡Ellos trabajaron! Ahora pyrow funciona como un encanto! Aparentemente, libusb ni siquiera es necesario o ya está instalado de manera predeterminada. ¡Gracias por ayudarme!
A. Goossens
7

pyusb la biblioteca viene en dos versiones:

  • estable (0.4.x)
  • en desarrollo (1.0.x)

La distribución de Debian solo contiene la stableversión y esta es la que ha instalado usando el apt-getcomando.

Ahora pyrowestá intentando importar lo usb.coreque solo existe en la 1.0.xversión de la biblioteca. Y, de hecho, el pyrow'ssitio web afirma que necesita la versión 1.0 de pyusb. Es por eso que tienes problemas.

Entonces, para usarlo pyrow, necesita pyusb1.0.x, que no está disponible en Debian, por lo que no puede instalarlo usando apt-get. La solución más fácil a este problema es lo que sugirió @Stevelrwin: el uso pip installinstalará la rama 1.0.x de pyusb. Es posible que desee utilizarlo virtualenvsi no desea contaminar su sistema con algunas bibliotecas que no provienen de paquetes Debian.

Krzysztof Adamski
fuente
¡Gracias, eso hace que el problema sea mucho más claro para mí! Sin embargo, el problema aún existe. Ver comentario en Stevelrwin.
A. Goossens
3

Pruebe esto, esto funcionó para mi en un Raspberry PI 3b + para Python 3.5.3

sudo apt-get install python-usb python3-usb

después de ejecutar que el código de importación usb.core funcionó

(Raspberry PI 3b + - Python 3.5.3 - 2019)

Eamon
fuente
1

Eureka! He resuelto el problema en Raspberry Pi, que tiene las versiones Python 2.7 y 3.4.2 instaladas.

Paso 1: Copie las bibliotecas usb de python de la versión 2.7 a la versión 3.4.

Había dos carpetas en /usr/local/lib/python/2.7/dist-packages/

pyusb-1.0.0.egg-info, y

USB

Se copiaron en /usr/local/lib/python/3.4/dist-packages/

Paso 2: Use easy_install para identificar la versión de Python 3.4 a la herramienta de instalación de Python llamada línea de comando "pip": sudo easy_install-3.4 pip

Paso 3: Instale la biblioteca pyusb en la línea de comando Python versión 3.4: sudo pip3.4 install pyusb

Ahora la biblioteca pyusb debe instalarse en Python Versión 3.4 en lugar de (o además de) la versión predeterminada, que es la versión 2.7

Steve
fuente
-1

Tengo el mismo problema.

Multaba la causa, al menos en mi máquina:

Raspberry pi viene con dos instalaciones de Python: 2.xy 3.x, pero el script de instalación de pyusb instala el software en la versión 2.x por defecto.

Entonces, cuando tratamos de usarlo en la versión 3.x, el error: "ImportError: ningún módulo llamado core" se eleva automáticamente.

No tengo una solución por ahora, pero creo que no debería ser demasiado complicado de encontrar.

usuario3456062
fuente
¿Has leído las otras respuestas? Esta no es la respuesta.
Steve Robillard