Pyinstaller打包的EXE运行报错:缺少tornado模块求助
解决PyInstaller打包EXE后
tornado模块缺失的报错 嘿,这个问题我之前处理过——虽然你的代码里没直接导入matplotlib或者tornado,但某个依赖库(大概率是sklearn的相关模块)间接触发了matplotlib.backends.backend_webagg的加载,而这个模块依赖tornado,PyInstaller自动收集依赖时漏掉了它,所以运行EXE就报错了。
给你几个靠谱的解决步骤:
先安装
tornado模块,毕竟依赖链里确实需要它:pip install tornado重新打包时,用
--hidden-import参数明确告诉PyInstaller要包含tornado,避免它再漏掉。假设你的主脚本是your_script.py,打包命令改成:pyinstaller --hidden-import tornado your_script.py额外小技巧:如果之后还遇到类似的模块缺失问题,都可以用
--hidden-import把对应的模块加进去,PyInstaller对一些深层间接依赖的识别偶尔会有遗漏。
要是你确定自己完全用不到matplotlib的任何后端功能,也可以在代码开头加两行强制指定非交互式后端,从根源避免触发tornado的依赖:
import matplotlib matplotlib.use('Agg') # 强制使用无交互的后端,不会加载需要tornado的webagg
不过这个方法要确保你的代码里真的没用到matplotlib的可视化,不然会搞出别的问题,还是前两种方法更稳妥。
内容的提问来源于stack exchange,提问作者stackUnderflow
相关产品推荐
相关产品推荐

