PyCharme使用Pyinstaller打包exe程序闪退,提示no module named ****(项目在PyCharme正常运行)
应用 | 版本 |
---|---|
Python | 3.10.2 |
pip | 21.3.1 |
背景
使用Pycharme开发了一个小功能使用pandas读取excel中的内容requeste提交到网站,调试成功后使用Pyinstaller打包,执行打包文件直接闪退,先找方法看到提示
排查错误
闪退有可能是程序执行完成控制台退出,或者报错程序退出,我这边在结尾有input(),所以应该是程序执行出错了,调试的时候明明没问题了打个包反而出错了很神奇
想方法让控制台不退出查看具体报错
进入到可执行文件所在目录在控制台中执行exe
执行后发现具体原因,居然在第一行import pandas,提示no module named pandas,真的很神奇,为什么没打包进去,根据提示查了大量的帖子,解决方法都是一样的,方法就两种,1.修改第一次打包生成的main.spec文件2.打包时使用--hidden-import参数,我最后是通过第二种方法成功的,但过程异常的曲折
解决过程
查看项目中这些包我都是有的,打包时我使用的项目中的pyinstaller,调用时写的绝对路径,但通过修改.spe和在编译时加入--hidden-import参数单独说明模块都不行,编译出来的可执行文件在前几行的import xxx报错,提示缺少模块,no module named
使用pip安装pyinstaller进行打包(最后打包成功)
pip install pyinstaller -i https://pypi.mirrors.ustc.edu.cn/simple/
-i指定下载的源(我网上找的某个大学的)
之后使用系统中的pyinstaller进行打包,打包过程中就提示no module named,应该是不能使用项目中的包,使用pip将所有引入的包都单独install一次,最后使用hidden-import进行打包,打包完成程序执行成功
pyinstaller.exe -c .\main.py --hidden-import 'pandas','requests','openpyxl'
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通