pyHook3是一个python库包,为Windows中的全局鼠标和键盘事件提供回调,可用于监听鼠标和键盘操作,接下来我就说一说如何安装pyhook3。
1、pyhook3的编译需要swig工具的支持,所以我们首先需要安装swig,直接点击swig下载(也可以复制此链接https://sourceforge.net/projects/swig/files/swigwin/swigwin-3.0.12/swigwin-3.0.12.zip/download?use_mirror=nchc),跳转到下载页面便会自动下载swig安装包。
2、下载完成后将swig压缩包解压缩到你想要安装的目录下
3、点击swig.exe安装swig
4、复制swig文件所在的当前路径配置环境变量
若电脑中没有visual c++ 14.0环境,在安装pyhook时会报错visual c++ 14.0 is required,所以pyhook3的安装还需要c++build工具的支持,直接点击下载visual studio,点击安装后会执行安装程序安装visual studio,此时会跳出如下界面,我们勾选C++的桌面开发,然后勾选右下角箭头所指的那一条,那便是我们安装pyhook3需要的工具,当然我们也可以直接去网上搜索Microsoft Visual C++ 14.0进行安装。
我们可以直接在cmd下用pip安装pyhook3,但是用pip安装的pyhook3版本可能和你电脑的python版本不一致,这时就会报编码错误。我们可以去非官方的python扩展包中去找适合自己python版本的pyhook3轮子,然后再使用pip安装。
更新
之前写的第三步完全是错的,但我就不删了,你们可以做个借鉴,我也是在导入库包的时候发现import pyhook,并没有PyHook3。
那么错在哪呢?首先在python3环境下使用pip安装的官方包不一定与你的版本匹配,我的是python3.6,官方是没有这个版本的pyhook3的,具体可以去pypi官网看到,所以如果你的版本与下图中的不一致,就只能下载最后一个压缩包使用setup自行安装,安装成功后你就可以导入库包import PyHook3。
我在安装的过程中还出现一个问题,明明已经安装了visual c++ 14.0(2015),但还是会报错其运行失败,但在这之前还有一个错误,其实那才是出错的根源,fatal error LNK1158: cannot run ‘rc.exe’。然后我去网上查了一下,我们需要将C:\Program Files (x86)\Windows Kits\8.0\bin\x86目录下的rc.exe rcdll.dll这两个文件复制到C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin目录下(也就是visual c++ 14.0的安装目录),问题就完美解决了
这里再说一点,为什么我们一直纠结于pyhook的版本?
如果你是在python2的环境下使用pyhook2和3版本都是没有问题的,但是如果是在python3环境下使用pyhook2是会出错的。我们使用IDE编写代码并运行监视鼠标操作,当鼠标移动到任务栏的时候就会报错并异常中断。原因是在python3环境下调用pyhook2库获取窗口名时,会因为编码冲突无法识别获取到的窗口名。这个很好理解,例如我们使用非UTF-8的编码格式存储的文档在某些办公软件中打开会有乱码一样,这就是因为编码格式冲突造成的无法识别某些字符。所以要想在python3下使用pyhook,只能用pyhook3版本。