Đã cài đặt pyusb, vẫn: 'ImportError: không có mô-đun có tên lõi'


11

Trên Raspberry Pi của tôi, tôi đã cài đặt libusbpyusbthông qua sudo apt-get install libusb-dev python-usb.

Nhưng việc chạy một số mã Python ( pyrow , để đọc dữ liệu từ máy chèo thuyền) cho tôi lỗi này tại import usb.core:

ImportError: không có mô-đun có tên lõi

Lỗi này cho thấy tôi đã không cài đặt pyusbđúng cách, vì vậy tôi đã làm lại một cách thủ công (tải xuống và chạy sudo python setup.py install), nhưng điều này không khắc phục được.

Tôi nghĩ rằng vấn đề có thể có liên quan đến thư mục /usr/local/lib/python2.7/dist-packages/usb: trên máy tính xách tay Ubuntu của tôi thư mục này tồn tại và chứa (trong số những người khác) core.py, nhưng thư mục trên Raspberry Pi dường như không tồn tại. lstrong thư mục mẹ liệt kê thư mục, nhưng việc gắn vào nó không hoạt động ...

Làm thế nào để tôi khắc phục vấn đề này? Tôi có phải sử dụng một phiên bản cụ thể của pyusb trên Raspberry Pi không?

  • Phần cứng: Raspberry Pi model B
  • HĐH: Raspbian Wheezy (bản dựng 2013 / 02-09)

Câu trả lời:


8

Vui lòng làm theo các bước và xem nếu nó hoạt động.

$ 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' cung cấp cho tôi "Yêu cầu đã được thỏa mãn". Nâng cấp nó mang lại "Yêu cầu đã được cập nhật". Tôi cũng đã thử cài đặt thủ công pyusb-1.0 như Krzysztof Adamski đề xuất, nhưng vấn đề vẫn tồn tại. Nó có thể làm việc để làm các bước trên trên một cài đặt mới?
A. Goossens

bỏ qua bước sudo apt-get install python-pi. Chỉ cần gõ sudo pip cài đặt pyusb sẽ làm việc cho bạn.
SteveIrwin

Xin lỗi, nhầm. Tôi có nghĩa là 'sudo pip install pyusb' đưa ra "Yêu cầu đã được thỏa mãn".
A. Goossens

1
@ A.Goossens: Trước tiên pyusbbạn có thể nên gỡ cài đặt mà bạn đã cài đặt trước đó. Mặc dù nó dễ dàng cho gói bạn đã cài đặt apt-get, nhưng nó có thể khó hơn đối với gói được cài đặt thủ công.
Krzysztof Adamski

Bởi vì tôi không thể nhớ phiên bản nào của pyusb và libusb tôi đã cài đặt nên tôi đã tạo một bản cài đặt mới của raspbian và sử dụng các bước từ Stevelrwin. Họ đã làm! Bây giờ pyrow hoạt động như một nét duyên dáng! Rõ ràng libusb thậm chí không cần thiết hoặc đã được cài đặt theo mặc định. Cảm ơn vì đã giúp tôi ra ngoài!
A. Goossens

7

pyusb thư viện có hai phiên bản:

  • ổn định (0,4.x)
  • đang được phát triển (1.0.x)

Bản phân phối Debian chỉ chứa stablephiên bản và đây là bản mà bạn đã cài đặt bằng apt-getlệnh.

Bây giờ pyrowđang cố gắng nhập usb.coremà chỉ tồn tại trong 1.0.xphiên bản của thư viện. Và thực tế, pyrow'strang web nói rằng nó cần phiên bản 1.0 của pyusb. Đây là lý do tại sao bạn gặp vấn đề.

Vì vậy, để sử dụng, pyrowbạn cần pyusb1.0.x không có sẵn trong Debian để bạn không thể cài đặt nó bằng apt-get. Giải pháp đơn giản nhất cho vấn đề này là những gì @Stevelrwin đã sugested - sử dụng pip installsẽ cài đặt nhánh pyusb 1.0.x. Bạn có thể muốn sử dụng virtualenvnếu bạn không muốn làm ô nhiễm hệ thống của mình với một số thư viện không đến từ các gói Debian.


Cảm ơn, điều đó làm cho vấn đề rõ ràng hơn rất nhiều với tôi! Tuy nhiên, vấn đề vẫn tồn tại. Xem bình luận tại Stevelrwin.
A. Goossens

3

Hãy thử cái này, cái này hoạt động với Raspberry PI 3b + cho Python 3.5.3

sudo apt-get install python-usb python3-usb

Sau khi chạy, mã nhập usb.core đã hoạt động.

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


1

Eureka! Tôi đã giải quyết vấn đề trên Raspberry Pi có cài đặt cả phiên bản Python 2.7 và 3.4.2.

Bước 1: Sao chép thư viện usb python từ phiên bản 2.7 sang phiên bản 3.4.

Có hai thư mục trong /usr/local/lib/python/2.7/dist-packages/

pyusb-1.0.0.egg-thông tin và

USB

Chúng được sao chép vào /usr/local/lib/python/3.4/dist-packages/

Bước 2: Sử dụng easy_install để xác định Python phiên bản 3.4 cho công cụ cài đặt Python có tên là dòng lệnh "pip": sudo easy_install-3.4 pip

Bước 3: Cài đặt thư viện pyusb vào dòng lệnh Python phiên bản 3.4: sudo pip3.4 cài đặt pyusb

Bây giờ, thư viện pyusb nên được cài đặt trong Python Phiên bản 3.4 thay vì (hoặc ngoài) phiên bản mặc định, đó là phiên bản 2.7


-1

Tôi có cùng một vấn đề.

Tôi đã bị phạt nguyên nhân, ít nhất là trên máy của tôi:

Raspberry pi đi kèm với hai bản cài đặt Python: 2.x và 3.x, nhưng tập lệnh cài đặt của pyusb cài đặt phần mềm trên phiên bản 2.x theo mặc định.

Vì vậy, khi chúng tôi cố gắng sử dụng nó trong phiên bản 3.x, lỗi: "ImportError: không có mô-đun có tên lõi" tự động tăng.

Bây giờ tôi không có giải pháp nào nhưng tôi nghĩ nó không nên phức tạp để tìm.


Bạn đã đọc các câu trả lời khác đây không phải là câu trả lời.
Steve Robillard
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.