关于 Python 3.7/2.7 使用 pyHook 的问题
由于要实现 Windows 客户端简单的自动化,因此近期研究了一下 pyHook 库来监听鼠标、键盘事件。在此过程中遇到了不少的坑,在此记录一下,也方便其他遇到类似问题的朋友能够尽快解决。
- Python 3.7 需要对应安装 pyHook3!Python 2.7 需要安装 pyHook!目前不支持 pip install pyHook 安装(?),参考 pyHook 安装中的地址 https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyhook,下载对应 Python 版本的、对应系统位数的 pyHook,放到对应的 PythonXX/Scripts 目录下,然后用 pip2/3 install 文件名的方式安装,安装完成后 import pyHook 就不会报错了
- 但是 Python 3.7 在调用 pyHook3 时会有很多麻烦的事情,否则会类似报错 【TypeError: MouseSwitch() missing 8 required positional arguments: ‘msg’, ‘x’, ‘y’, ‘data’, ‘time’, ‘hwnd’, and ‘window_name’】,详细解决方案参考 Python的KeyboardSwitch() missing 8解决方法
- 因此我采用了 Python 2.7 来运行。在原先已经安装了 Python 3.7 的情况下,如何安装和配置 Python 2.7 可以参考 Windows系统下同时安装配置Python3.7和Python2.7,在对应的 Python 2.7 下,除了 pyHook 需要通过 1 中的方式安装以外,类似 pypi32(import pythoncom,import win32api 等)、pyUserInput(import pyMouse, pyKeyboard 等)都可以通过 Python 2.7 自己的 pip 安装
- IDE = VSCode 时切换编译器版本,ctrl + shift + P 进行选择,或者 VSCode 界面左下角点击选择。使用 VSCode 编译 Python 时一般会安装 Python 插件,但 2019.4.11881 这个版本应该有问题,会提示错误,无法调试脚本。解决方案是右键点击 Python 插件并选择安装其他版本