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库。

image-20220418162212252

那就按照他的方法做吧:

image-20220418162236538

但下载下来就这三个文件,在网上找了半天也没找到安装方法,如果哪位大神知道,麻烦指点一下。

image-20220418162305900

但天无绝人之路,编译好的安装不了,那就试试源码安装吧,找到hidapi的源码目录:https://github.com/libusb/hidapi

image-20220418162315805

并且点那个绿色的code按钮,复制git地址,在电脑上新建一个空目录,使用git clone命令把这个代码拉下来。

image-20220418162324206

然鹅,这并没有什么卵用!源码是C++的,还是好好学C++ 吧!而且编译出来估计还是上面那几个dll。

但life is short,you need python,作为一名爱钻研的程序员,则能这么放弃,经过我不懈努力,终于找到正确的方法:

既然是Python语言,那就得安装Pyhton的hidapi库。。。

回想起来前面的hidapi库,在PyPI上找到这个:

image-20220418162333834

先试试 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

可以安装成功,但是问题依旧,没有一点改善。。。

那再试试源码安装:

  1. 下载源码:
$ git clone https://github.com/trezor/cython-hidapi.git  
$ cd  cython-hidapi    
  1. 初始化子模块:
$  git submodule update --init    
  1. 编译:
$  python setup.py build    
  1. 安装:
$python  setup.py install   
  1. 用pip本地安装
$  pip install -e .  
  1. 测试一下:
$  python  
>>>  import hid  
>>>     
  1. 跑一下自带的例子:
$  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调试工具:

image-20220421165528623

posted @ 2022-04-21 17:12  凤毛  阅读(5218)  评论(2编辑  收藏  举报