Встановлений pyusb, все ще: "ImportError: немає модуля з ім'ям core"


11

На моєму Raspberry Pi я встановив libusbі pyusbчерез sudo apt-get install libusb-dev python-usb.

Але запуск деякого коду Python ( pyrow , для читання даних з гребної машини) дає мені цю помилку на import usb.core:

ImportError: жоден модуль не названий ядром

Ця помилка говорить про те, що я не встановив pyusbналежним чином, тому я це зробив ще раз вручну (завантажив його та запустив sudo python setup.py install), але це не виправлено.

Я думаю, що проблема може мати щось спільне з каталогом /usr/local/lib/python2.7/dist-packages/usb: на моєму ноутбуці Ubuntu ця папка існує і містить (серед інших) core.py, але папка на Raspberry Pi, здається, не існує. lsу батьківському каталозі відображається папка, але встановлення до неї не працює ...

Як виправити цю проблему? Чи потрібно використовувати певну версію пісбу на Raspberry Pi?

  • Обладнання: Raspberry Pi модель B
  • ОС: Raspbian Wheezy (версія 2013-02-09)

Відповіді:


8

Будь ласка, виконайте дії та побачите, чи працює він

$ 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' дає мені "Вимогу вже задоволено". Оновлення це дає "Вимога вже оновлена". Я також спробував встановити pyusb-1.0 вручну, як запропонував Кшиштоф Адамський, але проблема все ще існує. Чи може це зробити, щоб виконати вищезазначені кроки на новому встановленні?
A. Goossens

пропустити крок sudo apt-get install python-pi. Просто введіть sudo pip install pyusb, який повинен працювати для вас.
SteveIrwin

Вибачте, помилково введено. Я мав на увазі "sudo pip install pyusb" дає "Вимогу вже задоволено".
А. Гуссенс

1
@ A.Goossens: Вам, ймовірно, слід спочатку видалити pyusbвстановлену раніше. Незважаючи на те, що пакет, з яким ви встановили apt-get, це легко , він може бути складніше встановленому вручну.
Кшиштоф Адамський

Тому що я не міг згадати, які версії pyusb та libusb я вже встановив, я зробив нову інсталяцію raspbian і використав кроки від Stevelrwin. Вони працювали! Тепер pyrow працює як шарм! Мабуть, libusb навіть не потрібен або вже встановлений за замовчуванням. Дякуємо, що допомогли мені!
A. Goossens

7

pyusb бібліотека випускається у двох версіях:

  • стабільний (0,4.x)
  • в стадії розробки (1.0.x)

Дистрибутив Debian містить лише stableверсію, і це той, який ви встановили за допомогою apt-getкоманди.

Зараз pyrowнамагається імпортувати ті, usb.coreякі існують лише у 1.0.xверсії бібліотеки. І дійсно, pyrow'sвеб-сайт стверджує, що йому потрібна версія 1.0 pyusb. Ось чому у вас виникають проблеми.

Тож для використання pyrowвам потрібно pyusb1.0.x, який недоступний у Debian, тому ви не можете встановити його за допомогою apt-get. Найпростішим рішенням цієї проблеми є те, що @Stevelrwin підсумував - за допомогою pip installвстановлення 1.0.x гілки pyusb. Ви можете скористатися, virtualenvякщо ви не хочете забруднювати вашу систему деякими бібліотеками, що не надходять із пакунків Debian.


Дякую, це робить проблему набагато зрозумілішою для мене! Однак проблема все ще існує. Дивіться коментар у Stevelrwin.
A. Goossens

3

Спробуйте це, це працювало для мого на Raspberry PI 3b + для Python 3.5.3

sudo apt-get install python-usb python3-usb

після запуску цього коду імпорту usb.core працював

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


1

Еврика! Я вирішив проблему на Raspberry Pi, на якому встановлені обидві версії Python 2.7 та 3.4.2.

Крок 1: Скопіюйте бібліотеки usb python з версії 2.7 до версії 3.4.

У /usr/local/lib/python/2.7/dist-packages/ було дві папки

pyusb-1.0.0.egg-info та

usb

Вони були скопійовані в /usr/local/lib/python/3.4/dist-packages/

Крок 2: Використовуйте easy_install для ідентифікації версії 3.4 Python в інструменті установки Python під назвою командного рядка "pip": sudo easy_install-3.4 pip

Крок 3: Встановіть бібліотеку pyusb в командний рядок версії 3.4 Python: sudo pip3.4 встановіть pyusb

Тепер бібліотеку pyusb слід встановити у версії 3.4 Python замість (або додатково до неї) версії за замовчуванням, яка є версією 2.7


-1

У мене така ж проблема.

Я штрафував справу, принаймні, на своїй машині:

Raspberry pi постачається з двома установками Python: 2.x та 3.x, але сценарій установки pyusb встановлює програмне забезпечення версії 2.x за замовчуванням.

Отже, коли ми намагаємось використовувати його у версії 3.x, помилка: "ImportError: немає модуля з ім'ям core" автоматично піднімається.

Наразі у мене немає рішення, але думаю, що знайти це не повинно бути складним.


Чи читали ви інші відповіді, це не відповідь.
Стів Робіллард
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.