将pynput与pyinstaller一起使用时出错

Getting error when using pynput with pyinstaller

我的一个朋友让我给他写一个程序,我用 pynput 来处理一些输入和其他功能。当我使用 pyinstaller 将程序转换为可执行文件时,启动可执行文件会出现此错误: File "site-packages\pynput\keyboard\__init__.py", line 31, in <module> File "site-packages\pynput\_util\__init__.py", line 82, in backend ImportError [11492] Failed to execute script friend_project

我已经尝试使用 pyinstaller 命令 pyinstaller --onefile friend_project.py,并且还使用 auto-py-to-exe 运行 它。

将 pyinstaller 与 pygame 或 pyopengl 等其他模块一起使用不会出现错误,但这个模块会出现错误。 运行 脚本本身与 python inturpeter 工作正常,但我更愿意将它作为一个 exe,这样我就可以将它交给他而不需要 python 到 运行它。

请回退到 1.6.8 版本的 pynput。 pip 安装 pynput==1.6.8

如果你是运行 Windows你需要将这些参数添加到命令行(第一次,之后它们将包含在生成的spec文件中)。

--hidden-import "pynput.keyboard._win32" --hidden-import "pynput.mouse._win32"

对于Linux,使用:

--hidden-import "pynput.keyboard._xorg" --hidden-import "pynput.mouse._xorg"

可以在 Github issue 中找到更多信息。