Python Hid库安装方法
最近用弄一个USB HID,无奈USB调试工具很少,那就自己动手写一个,人生苦短,我用Python,Python操作USBHID接口需要用到HID库,为了安装这个库,走了不少弯路,踩了不少坑,完成后记录下来,分享给大家,也给自己留个笔记。
先按照常规操作,直接使用pip install hid,可以安装成功,但无法使用,import hid时会提示:
>>> import hid
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python\lib\site-packages\hid\__init__.py", line 30, in <module>
raise ImportError(error)
ImportError: Unable to load any of the following libraries:libhidapi-hidraw.so libhidapi-hidraw.so.0 libhidapi-libusb.so libhidapi-libusb.so.0 libhidapi-iohidmanager.so libhidapi-iohidmanager.so.0 libhidapi.dylib hidapi.dll libhidapi-0.d
无法使用,提示找不到一堆库,再仔细看一下PyPI文档,很明确,说是这个库要依赖于hidapi库。
那就按照他的方法做吧:
但下载下来就这三个文件,在网上找了半天也没找到安装方法,如果哪位大神知道,麻烦指点一下。
但天无绝人之路,编译好的安装不了,那就试试源码安装吧,找到hidapi的源码目录:https://github.com/libusb/hidapi
并且点那个绿色的code按钮,复制git地址,在电脑上新建一个空目录,使用git clone命令把这个代码拉下来。
然鹅,这并没有什么卵用!源码是C++的,还是好好学C++ 吧!而且编译出来估计还是上面那几个dll。
但life is short,you need python,作为一名爱钻研的程序员,则能这么放弃,经过我不懈努力,终于找到正确的方法:
既然是Python语言,那就得安装Pyhton的hidapi库。。。
回想起来前面的hidapi库,在PyPI上找到这个:
先试试 pip install hidapi:
pip install hidapi
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
Collecting hidapi
Using cached https://pypi.tuna.tsinghua.edu.cn/packages/ce/f0/7140fda56ebbc7ef47a3589da4938d76b17c930ce5c1187d247f7b11bdcf/hidapi-0.11.2-cp39-cp39-win_amd64.whl (55 kB)
Requirement already satisfied: setuptools>=19.0 in c:\python\lib\site-packages (from hidapi) (49.2.1)
Installing collected packages: hidapi
Successfully installed hidapi-0.11.2
可以安装成功,但是问题依旧,没有一点改善。。。
那再试试源码安装:
- 下载源码:
$ git clone https://github.com/trezor/cython-hidapi.git
$ cd cython-hidapi
- 初始化子模块:
$ git submodule update --init
- 编译:
$ python setup.py build
- 安装:
$python setup.py install
- 用pip本地安装
$ pip install -e .
- 测试一下:
$ python
>>> import hid
>>>
- 跑一下自带的例子:
$ python try.py
Oyeah,终于成功了,赶快跑一下自己的工程,然鹅。。。 算了,放弃吧。但又不甘心,觉得样例工程都能跑,自己的工程却不能,肯定是还少点火候,应该也就差一点点了。
原来样例工程目录下有一个hid.py的文件,运行样例工程的时候,导入的是这个文件,而在其他地方运行的是库里面的hid,但刚才明明已经用pip把源码给安装了,肯定是哪里冲突了,对,就是之前pip install hid那个,把它卸载了:
pip uninstall hid
Found existing installation: hid 1.0.5 Uninstalling hid-1.0.5: Would remove: c:\python\lib\site-packages\hid-1.0.5.dist-info\* c:\python\lib\site-packages\hid\* Proceed (Y/n)? y
Successfully uninstalled hid-1.0.5
到此,问题终于解决,顺便分享一下我用python写的HID调试工具: