Установил pyusb, еще: «ImportError: модуль с именем core»

11

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

Но выполнение некоторого кода Python ( pyrow , для чтения данных с гребного тренажера) дает мне эту ошибку по адресу import usb.core:

ImportError: нет модуля с именем core

Эта ошибка говорит о том, что я не установил pyusbдолжным образом, поэтому я сделал это снова вручную (загрузка и запуск sudo python setup.py install), но это не помогло.

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

Как мне исправить эту проблему? Должен ли я использовать определенную версию pyusb на Raspberry Pi?

  • Оборудование: Raspberry Pi модель B
  • OS: Raspbian свистящие (сборка 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, как предложил Кшиштоф Адамски, но проблема все еще существует. Может ли это работать, чтобы выполнить вышеуказанные шаги при новой установке?
А. Гуссенс
пропустите шаг sudo apt-get для установки python-pi. Просто введите sudo pip install pyusb, который должен работать для вас.
SteveIrwin
Извините, опечатка. Я имел в виду "sudo pip install pyusb", который дает "Требование уже выполнено".
А. Гуссенс
1
@ A.Goossens: Вам, вероятно, следует сначала удалить pyusbранее установленную версию . Хотя пакет, с которым вы установили apt-get, легко , он может быть сложнее для установленного вручную.
Кшиштоф Адамски
Поскольку я не мог вспомнить, какие версии pyusb и libusb я уже установил, я сделал новую установку raspbian и использовал шаги Stevelrwin. Они работали! Теперь Pyrow работает как шарм! Очевидно, libusb даже не нужен или уже установлен по умолчанию. Спасибо за помощь мне!
А. Гуссенс
7

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

  • стабильный (0.4.x)
  • в разработке (1.0.x)

Дистрибутив Debian содержит только stableверсию, и это та, которую вы установили с помощью apt-getкоманды.

Сейчас pyrowпытается импортировать usb.coreтолько существующие 1.0.xверсии библиотеки. И действительно, pyrow'sсайт утверждает, что ему нужна версия pyusb 1.0. Вот почему у вас проблемы.

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

Кшиштоф Адамски
источник
Спасибо, это делает проблему намного яснее для меня! Однако проблема все еще существует. Смотрите комментарий на Stevelrwin.
А. Гуссенс
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, чтобы идентифицировать Python версии 3.4 и Python для установки инструмента, называемого командной строкой «pip»: sudo easy_install-3.4 pip

Шаг 3: Установите библиотеку pyusb в командную строку Python версии 3.4: sudo pip3.4 install pyusb

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

Стив
источник
-1

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

Я оштрафовал причину, по крайней мере, на моей машине:

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

Поэтому, когда мы пытаемся использовать его в версии 3.x, автоматически возникает ошибка: «ImportError: нет модуля с именем core».

У меня пока нет решения, но я думаю, что его не должно быть сложно найти.

user3456062
источник
Читали ли вы другие ответы, это не ответ.
Стив Робиллард