You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pyarmor pack打包后运行报No module named 'keyboard'如何解决

PyArmor 打包运行提示缺少keyboard模块修复方案

问题复现

当前使用的打包命令:

pyarmor pack --clean -e "--onefile" main.py

运行打包生成的文件时抛出的报错:

Traceback (most recent call last):
File "<dist \obf\ Builder19948 .py>", line 3, in <module>
File "<frozen Builder19948> ", line 7, in <module>
ModuleNotFoundError: No module named 'keyboard'
[12560] Failed to execute script Builder19948 due to unhandled exception!

修复方法

这个问题是PyArmor调用PyInstaller打包时,没有自动识别收集keyboard隐式依赖导致的,哪怕本地代码已经正常导入、运行环境已经安装了模块也可能触发,按以下步骤排查修复即可:

  • 修改打包命令,显式指定PyInstaller将keyboard模块作为隐藏导入项打包,注意相关参数必须写在-e的引号内部,修改后的命令如下:
pyarmor pack --clean -e "--onefile --hidden-import keyboard" main.py
  • 如果修改命令后打包仍然报相同错误,先校验当前执行打包命令的Python环境是否安装了keyboard模块,执行以下命令检查:
pip show keyboard

如果命令执行后没有返回模块版本、安装路径等信息,先在当前环境安装对应模块再重新打包:

pip install keyboard
  • 如果项目运行在虚拟环境中,必须先激活项目对应的虚拟环境再执行打包命令,不要用全局Python环境的PyArmor给虚拟环境的项目打包,否则会因为全局环境未安装对应依赖出现找不到模块的问题。

如果后续打包运行还提示缺少其他模块,按照相同规则,在-e的引号里追加--hidden-import 缺失模块名即可,多个缺失模块就追加多个对应参数。

内容的提问来源于stack exchange,提问作者Rover1337

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 12:39:15