Pyinstaller对于一些第三方库的支持可以说是很完美的,在应用发布的时候几乎可以说是一键发布。但是天下熙熙,第三方模块层出不穷,在发布的时候还是要遵循先调试(测试)、后发布的基本步骤为好。
工具/原料
Pyinstaller 3.1.1
Python2.7.11
调试模式发布
1、强调一下,在程序可运行的前提下,默认使用调试模式发布应用,也就是不添加任何额外的指令。指令这部分大家参考下文链接

2、直接发布的好处是在发布的程序运行的提示,会有一个命令提示窗口同时显示。如果有运行时错误,会在窗口处提示。由于提示往往一闪而过,大家及时使用截取屏幕的固嗟喹账工具来截取提示(fn+printscrn)。推荐使用回车键运行程序,然后马上截取屏幕~


3、我们来分析一下提示信息。提示信息提示缺少图标资源的依赖,还提示了路径和文件夹。于是直接去目标路径把文件夹拷贝到发布路径,果然就成功了


4、这里还有个建议是,部分错误提示在退出应用的时候才会提示。由于需要关闭应用并截屏,操作上比较困难,如果需要的话,两个人同时操作或者使用屏幕录制软件会比较好。(笔者通过屏幕录制软件,翻看视频,通过定位找到代码位置)


5、多次重复发布过程中,会提示是否删除原先的发布文件,这里我们输入y并回车即可。下面是发布成功的应用的截图


查看发布日志
1、其实发布完成第一件事应该是查看发布日志。但是我们的习惯通常是直接去运行软件,所以就把发布日志放在后面位置了。(因为毕竟不是每次发布大多比较顺利啦,哈哈)下图是发布日志所在位置,就是warn开头的文本文件

2、打开文件,也就是一堆缺少的模块的提示啦~没什么大不了的。对于这部分,笔者的建议是,如果发布的应用功能一切正常就可以不用管了。下面说一下功能不能正常运行的情况

3、比如其中一个应用,说是缺少PIL模块,那笔者就赶紧用pip安装了PIL模块就好了啊,重新发布警告里果然就不见了。通常,我们使用pip list命令查看一下安装了哪些模块,如果有这个模忧栝牯嚣块,基本日志里面的报警就不要管了,当然,前提还是应用可以正常运行了啊


发布方式
1、笔者推荐使用文件夹的方式发布,而不是使用独立一个单独的exe的方式发布。也就是在发布时仅使用-w指令即可。


2、笔者发现,在性能上,文件夹发布的应用,启动时间最快。独立exe应用启动的时间跟机器性能有关。比如文件夹应用启动时间是1,独立exe在64位系统启动时间是5,在32位系统启动时间是25甚至更久!(所以大家一定在发布以后要进行测试啊~)
