Python通过pyinstaller打包的exe运行闪退和无法启动的问题踩坑
用PyQt5和QtDesigner写了个界面化的程序给别人用,同时还涉及到操作excel表格,最后需要打包给那个人用。
最开始的环境是:Anaconda3 +python3.6.13,以及通过pip安装的pyqt5、openpyxl和pyinstaller。
本机写好后无异常,但是通过pyinstaller打包时,不管是-F单独exe文件还是-D单独目录模式,最后生成的exe文件都无法启动。
也尝试了把PyQt5等第三方库放到自己的py文件目录里,但是还是不行,原理上来说,pyinstaller本身就会将所有第三方库打包,也根本不用这么操作。
最后,被这篇文章最后的总结启发:https://zhuanlan.zhihu.com/p/57435892
环境很重要!
因为我一开始的代码编写和打包过程,都是在Anaconda3的虚拟环境中进行的,我尝试了下把打包后的exe文件通过Anaconda3的虚拟python环境运行,结果是可以运行的!
所以,当我想在windows本身的环境中运行虚拟环境打包的exe文件,自然是不能成功了,大概率是因为一些依赖路径的错误。
所以,解决方法就呼之欲出了。
在windows本身环境中,直接安装python,运行下看看代码能不能运行;然后,也在windows原生cmd中用pyinstaller进行打包操作。这样一来得到的exe文件就能在本机原生cmd环境和他人的机器上运行了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现