pythonアプリケーションインターフェイスをUSB経由でNFCデバイスと接続しようとしています。最良のオプションはpyusbのようですが、libusbバックエンドに接続することはできません。私は取得し続けます
ValueError:利用可能なバックエンドはありません
スタックトレースを見て、usb/backend/libusb10.py
(pyusbの一部)がlibusb-1.0.dll
をロードしてバックエンドとして使用しようとしていることがわかりましたが、見つかりません。それは私の道にないということではなく、私のコンピューターにあるということでもありません!
Libusb-win32( http://libusb.org/wiki/libusb-win32 )をインストールしましたが、結果のディレクトリにはlibusb0.dllしか含まれていないようです。 libusb-1.0.dllはどこにありますか?
私はそのdllをどこで入手できるか、またはpyusbをWindows 7で動作させるための別の提案を知りたいと思っています。
libusb-win32-devel-filter-1.2.6.0.exe をダウンロードしてインストールします。動作するはずです。
最近、開発中のUSBデバイスと通信しようとすると、同様の問題が発生しました。 libusb-1.0.dllを探してウェブを探し回ったが、運がなかった。ソースコードは見つかりましたが、ビルドもインストールもできませんでした。最終的に、libusb0.dllであるlibusb-win32バイナリをインストールしました。
PyUSBはlibusb-1.0、libusb0、およびopenUSBバックエンドを検索します。
libusb0.dllはすでに私のシステムにありましたが、まだ何かが正しくセットアップされていませんでした、PyUSBは動作していませんでした。
here の指示に従って、フィルタードライバーをインストールするために提供されているGUIツールを使用してドライバーをダウンロードしてインストールし、INFウィザード。 INFウィザードを実行するまで。
私はプログラミングにかなり慣れていないので、明確なドキュメント/例が不足しているため、これをまとめてかなりイライラさせています。
私はPython 2.6.5、libusb-win32-device.bin-0.1.12.1
およびpyusb-1.0.0-a0
をWindowsで使用していますXPシステムとValueError: No backend available
。
この問題に対するWeb上の本当の助けがなかったので、ctypes util.py
がPath
変数を使用してライブラリファイルを見つけることに多くの時間を費やしました。私のpath
にはwindows\system32
が含まれておらず、PYUSB
にはライブラリが見つかりませんでした。 path
変数を更新しましたが、USBは動作しています。
「libusb APIには2つのバージョンがあります。現在のlibusb-1.0
API、およびその旧バージョンlibusb-0.1
。 "( http://www.libusb.org/ )" libusb-win32
はUSBライブラリのポートですlibusb-0.1
からMicrosoft Windowsオペレーティングシステムへ」。「 同じページ (1.0.9
は現在のバージョンです)libusb-1.0
同等、フォルダが見つかりますWin32
、あなたのlibusb-1.0.dll
で遊ぶ!ビルドすることもできます: http://www.libusb.org/wiki/windows_backend 。
[〜#〜] edit [〜#〜]ビルドする必要があります(ダウンロード元/ http://sourceforge.net/ projects/libusb/files/libusb-1.0 / )tarballは2012年のもので、最新のソースは2014-06-15のものです。
PYUSBを使用してUSB経由でNFCデバイスに接続するには、そのデバイスのバックエンドをインストールする必要があります。libusbデバイス以外のデバイスにはバックエンドはないと思います。
バックエンドを構築します。デバイスのドライバー(.sysファイル)を知る必要があるので、ラッパーDLLを記述して、デバイスの機能を公開できます。DLL PIDとVIDに基づいてデバイスを見つける方法、デバイスを開く別の方法、データを送信する別の方法などが必要になります...
Windows 10でも同じ問題がありましたPython 2.7.16とPython 3.7.2。python -m pip install libusb
を介して)libusbをインストールしましたが、また、libusb-win32のインストールに関する上記のアドバイスは私には機能しませんでした; 2つのリンク(元の投稿と@beebekの回答)のどちらも存在しませんでした。
didが機能するのは、@ user1495323によるコメントです:libusb-1.0.dll
をC:\Users\username\AppData\Roaming\Python\Python27\site-packages\libusb\_platform\_windows\x64\
からC:\Windows\System32\
にコピーしました
念のため:
Windowsではこれを試していませんが、Macintoshではこのエラーを回避するためにDYLD_LIBRARY_PATHパスを設定する必要がありました。
export DYLD_LIBRARY_PATH =/opt/local/lib
この変数を設定するかどうかの議論は here です。