我正在开发一个需要python包“ Keyboard”(https://github.com/boppreh/keyboard/tree/master/keyboard)的项目。
使用myscript.py
或.hook()
之类的.start_recording()
调用函数都可以正常工作。例子:
keyboard.hook(callback)
,keyboard.start_recording()
但是,当我使用myscript.py
或submission.exe
将cx_Freeze
打包到Pyinstaller
中时,我从键盘库代码的{{1} }。
这是什么引起的,我该如何解决?非常感谢!
(我猜这可能是由于32位和64位问题引起的。不过,仍然不确定如何解决。
答案 0 :(得分:0)
我只是猜测,但我可以想象这是32位应用程序无法在64位计算机上运行的情况。
看一下keyboard
包,它大概会存储和交换进程地址。在64位计算机上,即使您运行应用程序的32位版本,您仍将获得64位进程地址,有时该地址可能太大,无法容纳应用程序所需的32位地址。
如果要在64位计算机上运行冻结的应用程序,我想您需要使用64位python安装来冻结它。如果仍然无法解决问题,则可能意味着keyboard
无法正确处理64位地址(它需要将存储地址的变量ctypes
类型设置为64位整数而不是32位整数)。我找不到keyboard
是否支持64位体系结构的信息。