Pyusb installato, ancora: 'ImportError: nessun modulo chiamato core'


11

Sul mio Raspberry Pi ho installato libusbe pyusbvia sudo apt-get install libusb-dev python-usb.

Ma eseguire un codice Python ( pyrow , per leggere i dati da un vogatore) mi dà questo errore su import usb.core:

ImportError: nessun modulo chiamato core

Questo errore suggerisce che non sono stato installato pyusbcorrettamente, quindi l'ho fatto di nuovo manualmente (scaricandolo ed eseguendolo sudo python setup.py install), ma questo non lo ha risolto.

Penso che il problema potrebbe avere qualcosa a che fare con la directory /usr/local/lib/python2.7/dist-packages/usb: sul mio laptop Ubuntu questa cartella esiste e contiene (tra gli altri) core.py, ma la cartella sul Raspberry Pi sembra inesistente. lsnella directory principale elenca la cartella, ma il montaggio su di essa non funziona ...

Come posso risolvere questo problema? Devo usare una versione specifica di pyusb sul Raspberry Pi?

  • Hardware: Raspberry Pi modello B
  • Sistema operativo: Raspbian Wheezy (build 2013-02-09)

Risposte:


8

Seguire i passaggi e vedere se funziona.

$ sudo apt-get update
$ sudo apt-get install python-pip  #if you don't have pip installed already
$ sudo pip install pyusb

"sudo pip install pip" mi dà "Requisito già soddisfatto". L'aggiornamento dà "Requisito già aggiornato". Ho anche provato un'installazione manuale di pyusb-1.0 come suggerito da Krzysztof Adamski, ma il problema persiste. Potrebbe funzionare eseguire i passaggi precedenti su una nuova installazione?
A. Goossens,

salta il passaggio sudo apt-get install python-pi. Basta digitare sudo pip install pyusb che dovrebbe funzionare per te.
SteveIrwin

Mi dispiace, mal digitato. Intendevo "sudo pip install pyusb" da "Requisito già soddisfatto".
A. Goossens,

1
@ A.Goossens: probabilmente dovresti prima disinstallare pyusbche hai installato in precedenza. Sebbene sia facile per il pacchetto installato con apt-get, potrebbe essere più difficile per quello installato manualmente.
Krzysztof Adamski il

Perché non riuscivo a ricordare quali versioni di pyusb e libusb ho già installato, ho fatto una nuova installazione di raspbian e ho usato i passaggi di Stevelrwin. Loro lavorarono! Ora pyrow funziona come un incantesimo! Apparentemente libusb non è nemmeno necessario o è già installato di default. Grazie per avermi aiutato!
A. Goossens,

7

pyusb la libreria è disponibile in due versioni:

  • stabile (0.4.x)
  • in fase di sviluppo (1.0.x)

La distribuzione Debian contiene solo la stableversione e questa è quella che hai installato usando il apt-getcomando.

Ora pyrowsta cercando di importare ciò usb.coreche esiste solo nella 1.0.xversione della libreria. E infatti, il pyrow'ssito web afferma che ha bisogno della versione 1.0 di pyusb. Questo è il motivo per cui stai riscontrando i problemi.

Quindi per poter usare pyrowhai bisogno di pyusb1.0.x che non è disponibile in Debian, quindi non puoi installarlo usando apt-get. La soluzione più semplice a questo problema è ciò che ha suggerito @Stevelrwin: usando pip installverrà installato il ramo 1.0.x di pyusb. Potresti voler usare virtualenvse non vuoi inquinare il tuo sistema con alcune librerie che non provengono dai pacchetti Debian.


Grazie, questo mi rende il problema molto più chiaro! Tuttavia, il problema esiste ancora. Vedi commento su Stevelrwin.
A. Goossens,

3

Prova questo, questo ha funzionato per me su un Raspberry PI 3b + per Python 3.5.3

sudo apt-get install python-usb python3-usb

dopo aver eseguito il codice import usb.core ha funzionato

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


1

Eureka! Ho risolto il problema su Raspberry Pi che ha installato entrambe le versioni 2.7 e 3.4.2 di Python.

Passaggio 1: copia le librerie USB di Python dalla versione 2.7 alla versione 3.4.

C'erano due cartelle in /usr/local/lib/python/2.7/dist-packages/

pyusb-1.0.0.egg-info e

USB

Quelli sono stati copiati in /usr/local/lib/python/3.4/dist-packages/

Passaggio 2: utilizzare easy_install per identificare la versione 3.4 di Python nello strumento di installazione di Python chiamato riga di comando "pip": sudo easy_install-3.4 pip

Passaggio 3: installare la libreria pyusb nella riga di comando di Python versione 3.4: sudo pip3.4 install pyusb

Ora la libreria pyusb dovrebbe essere installata in Python Versione 3.4 anziché (o in aggiunta) alla versione predefinita, che è la versione 2.7


-1

Ho lo stesso problema.

Ho multato la causa, almeno sulla mia macchina:

Raspberry pi viene fornito con due installazioni di Python: 2.xe 3.x, ma lo script di installazione di pyusb installa il software sulla versione 2.x per impostazione predefinita.

Quindi, quando proviamo a usarlo nella versione 3.x, l'errore: "ImportError: nessun modulo chiamato core" aumenta automaticamente.

Non ho una soluzione per ora, ma penso che non dovrebbe essere complicato da trovare.


Hai letto le altre risposte, questa non è la risposta.
Steve Robillard
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.