基于Pine项目优化游戏目标识别时,使用PyInstaller打包为.exe文件出现Pynput ImportError问题求助
解决PyInstaller打包Pine项目时Pynput的ImportError问题
我之前在打包用到pynput的Python项目时,也碰到过完全一样的"Failed to execute script"导入错误,给你几个亲测有效的解决方案,按顺序尝试应该能解决:
- 手动添加pynput的隐藏导入
PyInstaller的自动依赖检测有时候会漏掉pynput的子模块,打包时需要显式指定。直接在打包命令里加上--hidden-import参数:
pyinstaller --hidden-import pynput.keyboard --hidden-import pynput.mouse 你的主脚本文件名.py
如果你的项目只用到了键盘或者鼠标其中一个模块,只加对应的那个就行。
- 通过.spec文件配置打包规则
如果经常打包,用.spec文件会更灵活:
- 先生成基础的.spec文件:
pyinstaller 你的主脚本文件名.py
- 打开生成的
.spec文件,找到hiddenimports这一行,把pynput的模块添加进去:
hiddenimports=['pynput.keyboard', 'pynput.mouse'],
- 用修改后的.spec文件重新打包:
pyinstaller 你的主脚本文件名.spec
- 确保依赖版本兼容
版本不匹配是这类问题的常见原因,先尝试升级到最新稳定版:
pip install --upgrade pynput pyinstaller
如果最新版还是报错,可以试试降级pynput到2.0.1版本(这个版本和多数PyInstaller版本兼容性都很好):
pip install pynput==2.0.1
- 排查依赖冲突
如果上面的方法都没效果,可能是项目里其他库和pynput有冲突。可以先写一个极简测试脚本,只包含pynput的基础功能:
from pynput.mouse import Controller mouse = Controller() mouse.position = (100, 100)
打包这个测试脚本,如果能正常运行,说明问题出在你的Pine项目其他依赖上,需要逐步添加模块排查冲突点。
内容的提问来源于stack exchange,提问作者7VK
相关产品推荐
相关产品推荐

