Zainstalowano pyusb, wciąż: „ImportError: brak modułu o nazwie core”

11

Na moim Raspberry Pi zainstalowałem libusbi pyusbprzez sudo apt-get install libusb-dev python-usb.

Ale uruchomienie jakiegoś kodu w Pythonie ( pyrow , aby odczytać dane z maszyny do wiosłowania) daje mi ten błąd na import usb.core:

ImportError: brak modułu o nazwie core

Ten błąd sugeruje, że nie zainstalowałem się pyusbpoprawnie, więc zrobiłem to ponownie ręcznie (pobieranie i uruchamianie sudo python setup.py install), ale to nie naprawiło.

Myślę, że problem może mieć coś wspólnego z katalogiem /usr/local/lib/python2.7/dist-packages/usb: na moim laptopie z Ubuntu ten folder istnieje i zawiera (między innymi) core.py, ale folder na Raspberry Pi wydaje się nie istnieć. lsw katalogu nadrzędnym wyświetla folder, ale podłączenie do niego nie działa ...

Jak rozwiązać ten problem? Czy muszę używać konkretnej wersji pyusb na Raspberry Pi?

  • Sprzęt: Raspberry Pi model B
  • System operacyjny: Raspbian Wheezy (build 2013-02-09)
A. Goossens
źródło

Odpowiedzi:

8

Postępuj zgodnie z instrukcjami i sprawdź, czy to działa.

$ sudo apt-get update
$ sudo apt-get install python-pip  #if you don't have pip installed already
$ sudo pip install pyusb
SteveIrwin
źródło
„sudo pip install pip” daje mi „Wymagania już spełnione”. Aktualizacja daje „Wymaganie już aktualne”. Próbowałem też ręcznie zainstalować pyusb-1.0, jak sugerował Krzysztof Adamski, ale problem nadal istnieje. Czy może zadziałać wykonanie powyższych kroków przy nowej instalacji?
A. Goossens,
pomiń krok sudo apt-get install python-pi. Wystarczy wpisać sudus pip install pyusb, który powinien działać dla Ciebie.
SteveIrwin
Przepraszam, pomyliłem się. Miałem na myśli „sudo pip install pyusb” daje „Wymagania już spełnione”.
A. Goossens,
1
@ A.Goossens: Najprawdopodobniej powinieneś najpierw odinstalować pyusbwcześniej zainstalowany. Chociaż pakiet, który zainstalowałeś apt-get, jest łatwy , może być trudniejszy w przypadku pakietu zainstalowanego ręcznie.
Krzysztof Adamski,
Ponieważ nie pamiętam, które wersje pyusb i libusb już zainstalowałem, zrobiłem nową instalację raspbian i wykonałem kroki ze Stevelrwin. Oni pracowali! Teraz pyrow działa jak urok! Najwyraźniej libusb nie jest nawet potrzebny lub jest już domyślnie zainstalowany. Dzięki za pomoc!
A. Goossens,
7

pyusb biblioteka występuje w dwóch wersjach:

  • stabilny (0.4.x)
  • w fazie rozwoju (1.0.x)

Dystrybucja Debiana zawiera tylko stablewersję, a ta jest zainstalowana za pomocą apt-getkomendy.

Teraz pyrowpróbuje zaimportować, usb.corektóre istnieją tylko w 1.0.xwersji biblioteki. I rzeczywiście, pyrow'sstrona internetowa stwierdza, że ​​potrzebuje wersji pyusb w wersji 1.0. Właśnie dlatego masz problemy.

Aby więc użyć pyrow, potrzebujesz wersji pyusb1.0.x, która nie jest dostępna w Debianie, więc nie możesz zainstalować jej za pomocą apt-get. Najłatwiejszym rozwiązaniem tego problemu jest sugestia @Stevelrwin - użycie pip installspowoduje zainstalowanie gałęzi pyusb 1.0.x. Możesz użyć, virtualenvjeśli nie chcesz zanieczyszczać systemu niektórymi bibliotekami nie pochodzącymi z pakietów Debiana.

Krzysztof Adamski
źródło
Dzięki, dzięki temu problem jest dla mnie o wiele bardziej wyraźny! Jednak problem nadal istnieje. Zobacz komentarz na Stevelrwin.
A. Goossens,
3

Spróbuj, to zadziałało dla mnie na Raspberry PI 3b + dla Python 3.5.3

sudo apt-get install python-usb python3-usb

po uruchomieniu kod importu usb.core zadziałał

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

Eamon
źródło
1

Eureka! Rozwiązałem problem na Raspberry Pi, który ma zainstalowane zarówno wersje Python 2.7, jak i 3.4.2.

Krok 1: Skopiuj biblioteki usb Pythona z wersji do 2.7 do wersji 3.4.

W katalogu /usr/local/lib/python/2.7/dist-packages/ znajdowały się dwa foldery

pyusb-1.0.0.egg-info, i

USB

Zostały one skopiowane do /usr/local/lib/python/3.4/dist-packages/

Krok 2: Użyj easy_install, aby zidentyfikować Python w wersji 3.4 do narzędzia instalacyjnego Python o nazwie wiersza polecenia „pip”: sudo easy_install-3.4 pip

Krok 3: Zainstaluj bibliotekę pyusb w wierszu poleceń Pythona w wersji 3.4: sudo pip3.4 zainstaluj pyusb

Teraz biblioteka pyusb powinna być zainstalowana w Pythonie w wersji 3.4 zamiast (lub oprócz) wersji domyślnej, czyli w wersji 2.7

Steve
źródło
-1

Mam ten sam problem.

Skazałem grzywnę na przyczynę, przynajmniej na moim komputerze:

Raspberry pi zawiera dwie instalacje Pythona: 2.xi 3.x, ale skrypt instalacyjny pyusb domyślnie instaluje oprogramowanie w wersji 2.x.

Kiedy więc próbujemy użyć go w wersji 3.x, automatycznie pojawia się błąd: „ImportError: brak modułu o nazwie core”.

Na razie nie mam rozwiązania, ale myślę, że znalezienie tego nie powinno być skomplikowane.

użytkownik3456062
źródło
Czy czytałeś inne odpowiedzi, to nie jest odpowiedź.
Steve Robillard