将脚本转换为exe时,键盘模块出现溢出错误



我试图创建一个程序,使用Python的键盘模块记录键盘键。我想为程序创建一个独立的可执行文件。因此,我使用PyInstaller以及其他py-to-exe转换器将脚本转换为exe格式,但在执行时总是会出现溢出错误。

Exception in thread Thread-1:
Traceback (most recent call last):
File "threading.py", line 916, in _bootstrap_inner
File "threading.py", line 864, in run
File "site-packageskeyboard__init__.py", line 292, in listen
File "site-packageskeyboard_winkeyboard.py", line 560, in listen
File "site-packageskeyboard_winkeyboard.py", line 553, in prepare_intercept
ctypes.ArgumentError: argument 3: <class 'OverflowError'>: int too long to convert

我能做些什么来防止它?或者有其他方法可以创建一个独立的文件在其他计算机上运行python脚本吗?

这是键盘模块导入SetWindowsHookEx Windows API的方式中的一个错误(ctypes将所有参数默认为int,SetWindowsHook Ex的第三个参数为HINSTANCE,在64位上为64位宽(。(hackish(解决方案是修补库-在_winkeyboard.py的第32行将c_longlong添加到从ctypes导入的内容中,然后在第95行取消注释SetWindowsHookEx的argtypes,并将第三个改为c_longlong:SetWindowsHookEx.argtypes = [c_int, LowLevelKeyboardProc, c_longlong, c_int]

最新更新