Pyusb installiert, immer noch: 'ImportError: kein Modul namens core'

11

Auf meinem Raspberry Pi habe ich libusbund pyusbvia installiert sudo apt-get install libusb-dev python-usb.

Das Ausführen von Python-Code ( pyrow , um Daten von einem Rudergerät zu lesen) führt jedoch zu folgendem Fehler import usb.core:

ImportError: Kein Modul mit dem Namen core

Dieser Fehler deutet darauf hin, dass ich nicht pyusbrichtig installiert habe , also habe ich es erneut manuell gemacht (Herunterladen und Ausführen sudo python setup.py install), aber dies hat es nicht behoben.

Ich denke, das Problem hat möglicherweise etwas mit dem Verzeichnis zu tun /usr/local/lib/python2.7/dist-packages/usb: Auf meinem Ubuntu-Laptop existiert dieser Ordner und enthält (unter anderem) core.py, aber der Ordner auf dem Raspberry Pi scheint nicht zu existieren. lsim übergeordneten Verzeichnis wird der Ordner aufgelistet, aber das Mounten daran funktioniert nicht ...

Wie behebe ich dieses Problem? Muss ich auf dem Raspberry Pi eine bestimmte Version von Pyusb verwenden?

  • Hardware: Raspberry Pi Modell B.
  • Betriebssystem: Raspbian Wheezy (Build 09.02.2013)
A. Goossens
quelle

Antworten:

8

Bitte folgen Sie den Schritten und prüfen Sie, ob es funktioniert.

$ sudo apt-get update
$ sudo apt-get install python-pip  #if you don't have pip installed already
$ sudo pip install pyusb
SteveIrwin
quelle
'sudo pip install pip' gibt mir "Anforderung bereits erfüllt". Durch ein Upgrade wird "Anforderung bereits aktuell" angezeigt. Ich habe auch versucht, Pyusb-1.0 manuell zu installieren, wie Krzysztof Adamski vorgeschlagen hat, aber das Problem besteht immer noch. Könnte es funktionieren, die obigen Schritte bei einer Neuinstallation auszuführen?
A. Goossens
Überspringen Sie den Schritt sudo apt-get install python-pi. Geben Sie einfach sudo pip install pyusb ein, das für Sie funktionieren sollte.
SteveIrwin
Entschuldigung, falsch geschrieben. Ich meinte 'sudo pip install pyusb' gibt "Anforderung bereits erfüllt".
A. Goossens
1
@ A.Goossens: Sie sollten wahrscheinlich zuerst deinstallieren, was pyusbSie zuvor installiert haben. Während es für das Paket, mit dem Sie installiert haben apt-get, einfach ist , kann es für das manuell installierte Paket schwieriger sein.
Krzysztof Adamski
Da ich mich nicht erinnern konnte, welche Versionen von pyusb und libusb ich bereits installiert habe, habe ich eine Neuinstallation von raspbian durchgeführt und die Schritte von Stevelrwin verwendet. Sie arbeiteten! Jetzt wirkt Pyrow wie ein Zauber! Anscheinend wird libusb nicht einmal benötigt oder ist bereits standardmäßig installiert. Danke, dass du mir geholfen hast!
A. Goossens
7

pyusb Bibliothek gibt es in zwei Versionen:

  • stabil (0.4.x)
  • in Entwicklung (1.0.x)

Die Debian-Distribution enthält nur die stableVersion, die Sie mit dem apt-getBefehl installiert haben .

Jetzt pyrowwird versucht zu importieren, usb.coredie nur in der 1.0.xVersion der Bibliothek vorhanden sind. Und tatsächlich gibt die pyrow'sWebsite an, dass sie die 1.0-Version von pyusb benötigt. Deshalb haben Sie die Probleme.

Für die Verwendung pyrowbenötigen Sie pyusb1.0.x, das in Debian nicht verfügbar ist, sodass Sie es nicht mit apt-get installieren können. Die einfachste Lösung für dieses Problem ist das, was @Stevelrwin vorgeschlagen hat - mit pip installwird der 1.0.x-Zweig von pyusb installiert. Möglicherweise möchten Sie verwenden, virtualenvwenn Sie Ihr System nicht mit einigen Bibliotheken verschmutzen möchten, die nicht aus Debian-Paketen stammen.

Krzysztof Adamski
quelle
Danke, das macht mir das Problem viel klarer! Das Problem besteht jedoch weiterhin. Siehe Kommentar bei Stevelrwin.
A. Goossens
3

Versuchen Sie dies, dies funktionierte für mich auf einem Raspberry PI 3b + für Python 3.5.3

sudo apt-get install python-usb python3-usb

Nach dem Ausführen funktionierte der Code-Import usb.core

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

Eamon
quelle
1

Eureka! Ich habe das Problem auf Raspberry Pi gelöst, auf dem beide Python-Versionen 2.7 und 3.4.2 installiert sind.

Schritt 1: Kopieren Sie die Python-USB-Bibliotheken von Version 2.7 auf Version 3.4.

Es gab zwei Ordner in /usr/local/lib/python/2.7/dist-packages/

pyusb-1.0.0.egg-info und

USB

Diese wurden in /usr/local/lib/python/3.4/dist-packages/ kopiert.

Schritt 2: Verwenden Sie easy_install, um die Python-Version 3.4 für das Python-Installationstool "pip" zu identifizieren: sudo easy_install-3.4 pip

Schritt 3: Installieren Sie die Pyusb-Bibliothek in der Befehlszeile von Python Version 3.4: sudo pip3.4 Installieren Sie Pyusb

Jetzt sollte die Pyusb-Bibliothek in Python Version 3.4 anstelle (oder zusätzlich zu) der Standardversion (Version 2.7) installiert werden

Steve
quelle
-1

Ich habe das gleiche Problem.

Ich habe die Ursache zumindest auf meiner Maschine mit einer Geldstrafe belegt:

Raspberry pi wird mit zwei Installationen von Python geliefert: 2.x und 3.x, aber das Installationsskript von pyusb installiert die Software standardmäßig auf Version 2.x.

Wenn wir also versuchen, es in Version 3.x zu verwenden, tritt automatisch der Fehler "ImportError: kein Modul mit dem Namen core" auf.

Ich habe momentan keine Lösung, denke aber, dass es nicht zu kompliziert sein sollte, sie zu finden.

user3456062
quelle
Haben Sie die anderen Antworten gelesen, ist dies nicht die Antwort.
Steve Robillard