auto-py-to-exe打包websocket程序报错No module named 'websockets.legacy'求助
问题解决方案
错误原因
No module named 'websockets.legacy'错误出现的核心原因是:auto-py-to-exe底层基于PyInstaller实现打包,PyInstaller的静态依赖扫描功能无法识别到websockets库内部隐式调用的websockets.legacy子模块,导致该模块没有被打包进最终生成的exe文件中,运行时就会报模块缺失错误。
具体解决步骤
- 打开auto-py-to-exe操作界面,找到「高级」选项卡下的*隐藏导入(hidden-import)*配置项
- 点击添加按钮,输入
websockets.legacy并确认 - 若后续打包运行仍出现websockets相关的模块缺失报错,可同步添加
websockets.extensions到隐藏导入列表 - 重新执行打包流程,生成的exe即可正常运行
备选命令行打包方案
如果GUI操作后仍有问题,可以直接调用PyInstaller命令打包,替换命令中的你的脚本名.py为你实际的Python文件名称即可:
pyinstaller -F --hidden-import websockets.legacy --hidden-import websockets.extensions 你的脚本名.py
内容的提问来源于stack exchange,提问作者Shadow
相关产品推荐
相关产品推荐

