问题概述
使用pyinstaller -F的命令进行py程序转为exe程序时,打包后的exe程序会出现闪退报错的情况:
解决办法
1. 检查“环境变量”tcl和tk是否配置好:
查看系统高级设置>>>环境变量>>>系统变量
博主使用anaconda进行python编译。同样使用Anaconda的小伙伴注意了,对应的tcl文件夹应该在anaconda安装的文件夹下寻找!如果是直接使用python编译器的小伙伴,在python安装的文件夹下寻找!
【相关帮助:This probably means that Tcl wasn‘t installed properly】
2. 如果做完上述“步骤一”后,exe还是无法正常运行,试试下面的方法:
(1)具体查看报错信息,在这些文件夹下把对应的tcl或者tcl8.6文件添加,如果没有文件夹就自己创建一个。
(2)在打包时,具体看运行的日志信息,可能能找到关键性报错。
在这么一大串的log中,博主细心发现了“UPX is not avaliable”的报错,猜测可能是缺少UPX导致的,于是去网上安装UPX。安装UPX后,打包的exe就可以正常运行了。
【相关帮助:【python 问题解决】 ---- UPX is not available.】
其他小问题
- 使用Anaconda进行python编程,可以在Anaconda Powershell Prompt里面执行命令行,和在cmd中是一样的(pip命令换成conda即可)。
- 使用pyinstaller -F -i xxx.ico xxx.py以后,打包的程序图标还是没有变怎么办?
—这个时候你对exe进行重命名就行了,重命名以后就会刷新成你设置的ico图标了。 - pyinstaller -F -w xxx.py 的 -w 可以让exe运行时不出现“黑色框”。但有的时候我们需要这个框,因为我们的程序在运行时,如果存在报错信息或者其他诸如print,都会反应在这个黑框里,就如同编译器里的终端一般。调试exe时,我们一般都要用到它。