2012-12-08 29 views
20

Tôi đang cố gắng có giao diện ứng dụng python của mình với thiết bị NFC qua USB. Tùy chọn tốt nhất có vẻ là pyusb, nhưng tôi không thể kết nối nó với phần phụ trợ libusb. tôi tiếp tục nhận đượcPyusb trên cửa sổ - không có phụ trợ nào

ValueError: No backend available

Tôi đã nhìn vào vết đống, và thấy rằng usb/backend/libusb10.py (đó là một phần của pyusb) đang cố gắng tải libusb-1.0.dll để sử dụng như là phụ trợ, nhưng nó không thể tìm thấy nó. Nó không phải là của nó không phải trong con đường của tôi, nó không phải trên máy tính của tôi ở tất cả!

Tôi đã cài đặt libusb-win32 (http://libusb.org/wiki/libusb-win32), nhưng thư mục kết quả chỉ dường như bao gồm libusb0.dll. Libusb-1.0.dll ở đâu ???

Tôi rất thích biết một trong hai nơi để nhận được rằng dll, hoặc thậm chí là một gợi ý khác nhau để có được pyusb để làm việc trên Windows 7.

Trả lời

6

Tôi đã có một vấn đề tương tự gần đây cố gắng để nói chuyện với một thiết bị USB Tôi đang phát triển . Tôi đã lướt web tìm kiếm libusb-1.0.dll và không có may mắn. Tôi tìm thấy mã nguồn, nhưng không có gì được xây dựng và sẵn sàng để cài đặt. Tôi đã cài đặt các tập tin nhị phân libusb-win32, đó là libusb0.dll.

PyUSB sẽ tìm kiếm các chương trình phụ trợ libusb-1.0, libusb0 và openUSB.

libusb0.dll đã có trên hệ thống của tôi, nhưng vẫn chưa thiết lập được điều gì đó, PyUSB không hoạt động.

Tôi làm theo hướng dẫn here để tải xuống và cài đặt trình điều khiển bằng cách sử dụng các công cụ GUI được cung cấp để cài đặt trình điều khiển bộ lọc và trình hướng dẫn INF. Lưu ý, nó không hoạt động cho đến khi tôi chạy thuật sĩ INF.

Tôi khá mới mẻ đối với lập trình và tôi đã thấy thiếu tài liệu/ví dụ rõ ràng để xâu chuỗi tất cả điều này với nhau khá bực bội.

+0

Có, hãy chạy trình hướng dẫn và chọn thiết bị của bạn để bắt đầu. – jonincanada

+0

@jonincanada có vẻ như tôi đã gặp rắc rối giống như Garrett Hyde. nhưng sự khác biệt là tôi đã tải về và giải nén tập tin (libusb1.0.20), sau đó sao chép một tập tin dll, cụ thể (libusb-1.0.dll) và sao chép nó vào hệ thống 32; sau đó tôi sao chép libusb-1.lib để python34/Lib. và vẫn có lỗi 'không có phần phụ trợ', vì vậy bạn có thể giúp tôi giải quyết vấn đề không? – Socre

4

Tôi đang sử dụng Python 2.6.5, libusb-win32-device.bin-0.1.12.1pyusb-1.0.0-a0 trên hệ thống Windows XP và tiếp tục nhận được ValueError: No backend available.

Vì không có bất kỳ trợ giúp thực sự nào trên web cho vấn đề này nên tôi đã dành rất nhiều thời gian để tìm kiếm rằng ctypes util.py sử dụng biến số Path để tìm tệp thư viện. My path không bao gồm windows\system32PYUSB không tìm thấy thư viện. Tôi đã cập nhật biến số path và giờ đây USB đang hoạt động.

+0

Cho rằng đây là về XP (và OP đã yêu cầu Re: Windows 7) điều này có thể đã được tốt hơn như một bình luận. –

+0

Tôi đã thêm thư mục hiện tại vào 'PATH'. – Liviu

+0

Đó là mẹo! Cần phải đặt libusb-1.0.dll vào thư mục system32. Hãy chắc chắn rằng nó phù hợp với hệ thống của bạn (32bit hoặc 64bit) – user1495323

0

Để kết nối với thiết bị NFC của bạn qua USB bằng PYUSB, bạn sẽ cần cài đặt chương trình phụ trợ cho thiết bị đó. Tôi không nghĩ có bất kỳ phụ trợ nào cho bất kỳ thiết bị nào ngoài thiết bị libusb.

Để xây dựng chương trình phụ trợ. Bạn sẽ cần phải biết trình điều khiển (tập tin .sys) cho thiết bị của bạn, vì vậy bạn có thể viết một trình bao bọc DLL để lộ các chức năng trong thiết bị. DLL của bạn sẽ phải có một phương pháp để tìm thiết bị dựa trên PID & VID, một phương pháp khác để mở thiết bị và một phương pháp khác để gửi dữ liệu và ...

1

"Có hai phiên bản của libusb API: hiện tại libusb-1.0 API và người tiền nhiệm cũ của nó libusb-0.1. " (http://www.libusb.org/) "libusb-win32 là cổng của thư viện USB libusb-0.1 đối với hệ điều hành Microsoft Windows"."Tải xuống bản phát hành tarball mới nhất" từ same page (1.0.9 là phiên bản hiện tại) để có số libusb-1.0 tương đương, bạn sẽ tìm thấy một thư mục Win32, nơi bạn sẽ tìm thấy libusb-1.0.dll để chơi cùng! Bạn thậm chí có thể xây dựng nó: http://www.libusb.org/wiki/windows_backend.

EDIT Bạn phải xây dựng nó (tải về từ/http://sourceforge.net/projects/libusb/files/libusb-1.0/) kể từ tarball là từ năm 2012, trong khi các nguồn mới nhất từ ​​2014/06/15.

0

Chỉ trong trường hợp:

Tôi đã không cố gắng này trên Windows nhưng tôi đã phải thiết lập đường DYLD_LIBRARY_PATH để phá vỡ lỗi này trên máy Macintosh.

export DYLD_LIBRARY_PATH=/opt/local/lib

Thảo luận về việc có hay không đặt biến này là here.

10

Tải xuống và cài đặt libusb-win32-devel-filter-1.2.6.0.exe. Nó sẽ hoạt động.

+0

Cảm ơn vì điều này. Làm việc trên Crazyflie của tôi và cứu tôi khỏi phải quay trở lại căn hộ 32-bit. –

Các vấn đề liên quan