5.3 Pyinstaller打包模式
Pyinstaller将Python源码打包成程序有2种打包的方式:
单文件夹模式
:指打包后将所有的程序文件放在一个文件夹内。
单文件模式
:打包后只有一个可执行文件,全部的依赖文件都已经被打包进去了。
5.3.1 单文件夹模式
这里我们先创建一个需要打包的py源文件,取名为打包.py
,内容如下:
print(‘hello world!’)
input(‘please input…’)
代码很简单,第一行用来输出hello world
,第二行用来暂停程序,这样我们在运行时不至于立刻运行完毕,导致看不到效果。
接下来进行单文件夹模式的打包,方法如下:
1,打开CMD,通过cd命令进入到py源码文件所在的文件夹。
2,输入命令:Pyinstaller 打包.py
3,紧接着CMD窗口会显示打包的过程,这个过程时长和Py源码有关,一般几分钟内就会完成。在最后如果能看到类似"Building…completed successfully"的语句,则表明打包成功完成。
4,接着我们发现项目文件夹下多出了2个文件夹,名称分别是build,dist。1个文件:打包.spec,而我们需要的可执行文件就在dist文件夹中。点击进入dist文件夹后,会发现有一个打包
文件夹 ,里面有程序可执行文件以及相关依赖。
5、双击运行该文件夹内的打包.exe
,以测试效果:
注:
1、打包成功跟运行成功是两个概念。前者指成功生成可执行文件,而后者指可执行文件运行没有问题,打包成功不代表程序运行没问题。
2、单文件夹模式由于会将所有的依赖文件全都放在文件夹里,这种模式比较稳定,在打包时或程序运行时不容易出现各种问题。是比较推荐的一种模式。
5.3.2 单文件模式
在单文件夹模式时,只需要在输入打包命令时,加上-F
参数即可改成单文件模式打包程序。如下:
Pyinstaller -F 打包.py
打包成功后同样会产生之前的2个文件夹和1个文件。而这次我们需要双击运行的程序文件变成了单文件:打包.exe
。同样在dist文件夹中。我们只需要双击运行该文件即可执行程序。
注:
1、打包双击这个可执行文件运行程序时会先将依赖文件解压到临时文件夹中,然后再执行程序。这种方式对不怎么懂编程或者电脑操作不是很熟练的用户来讲也比较友好。
2、该打包模式通常占用的空间更小,利于传输。
3、虽然单文件模式打包后的结果比较友好,但通常遇到的问题和麻烦比文件夹模式打更多。所以并不推荐。
5.3.3 build、dist和spec简介
这3个文件(夹)是打包成功后自动生成的。下面分别介绍下:
build文件夹
:生成一些日志文件以及工作文件
dist文件夹
:已经打包好的文件,主要是程序文件及依赖项。
spec文件
:这个文件其实就是个py源代码文件,写入的都是一些配置信息,包括打包时参数以及要打包的相关文件路径,它的作用就是告诉Pyinstaller如何来进行打包处理。
在打包完成并运行成功后,其实只要保存dist文件夹里面的内容即可。其它build文件夹以及spec文件是可以删除的。
5.3.4 打包过程
1、在脚本目录生成 spec 文件;
2、创建一个 build 目录;
3、写入一些日志文件和中间流程文件到 build 目录;
4、创建 dist 目录;
5、生成可执行文件或文件夹到 dist 目录;