pyHook 转码问题-MouseSwitch() missing 8 required positional arguments...,原因及解决办法
TypeError: MouseSwitch() missing 8 required positional arguments: 'msg', 'x', 'y', 'data', 'flags', 'time', 'hwnd', and 'window_name'
當鼠標焦點所在的窗口名包含非 ascii 碼,比如中文是 unicode 編碼,轉碼就會出現(xiàn)問題,不能獲取到 window_name,導致 MouseSwitch() 參數獲取不全報的錯。
因為 pyHook 是適配 python2 的,所以在 python2 上用不會有問題。
目前比較好的解決辦法是把 pyHook 庫改為 PyHook3 就能完美解決了。
PyHook3 安裝要點:
我親自安裝了一遍,中間主要是 vc++ 運行庫安裝時碰到了很多的坎,總的來說還是蠻容易的。
PyHook3 安裝主要就是兩步:
第一步: swig 安裝;
第二步: Microsoft Visual C++ 14.0 is required 問題解決;
這兩步解決了之后直接 pip install PyHook3 就可以了。
可以參考我的這兩篇文檔:
swig 安裝
vc++ 運行庫安裝
因為以前碰到兼容性問題,改一下本地的庫的代碼往往都會解決,這個我之前也試了試,發(fā)現(xiàn)還是改不成功。我的思路就是看看 window_name 能不能給賦一個 ascii 的不變的值,反正好像這個值也沒啥用,以后發(fā)現(xiàn)解決辦法會來更新博客的,大家有什么想法也可以分享一下。
喜歡的點個贊?吧!
總結
以上是生活随笔為你收集整理的pyHook 转码问题-MouseSwitch() missing 8 required positional arguments...,原因及解决办法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 引用全局变量提示:loca
- 下一篇: windows卸载程序提示“请等待当前程