仅在打包时,Python键盘库OverflowError

时间:2018-12-14 19:39:11

标签: python pyinstaller cx-freeze

我正在开发一个需要python包“ Keyboard”(https://github.com/boppreh/keyboard/tree/master/keyboard)的项目。

使用myscript.py.hook()之类的.start_recording()调用函数都可以正常工作。例子: keyboard.hook(callback)keyboard.start_recording()

但是,当我使用myscript.pysubmission.execx_Freeze打包到Pyinstaller中时,我从键盘库代码的{{1} }。

error message

这是什么引起的,我该如何解决?非常感谢!

(我猜这可能是由于32位和64位问题引起的。不过,仍然不确定如何解决。

1 个答案:

答案 0 :(得分:0)

我只是猜测,但我可以想象这是32位应用程序无法在64位计算机上运行的情况。

看一下keyboard包,它大概会存储和交换进程地址。在64位计算机上,即使您运行应用程序的32位版本,您仍将获得64位进程地址,有时该地址可能太大,无法容纳应用程序所需的32位地址。

如果要在64位计算机上运行冻结的应用程序,我想您需要使用64位python安装来冻结它。如果仍然无法解决问题,则可能意味着keyboard无法正确处理64位地址(它需要将存储地址的变量ctypes类型设置为64位整数而不是32位整数)。我找不到keyboard是否支持64位体系结构的信息。