PyInstaller可以把python程序打包成多个文件并放入一个文件夹中,也可以把程序只打包成一个可执行文件。通常我们比较倾向后者,因为拷贝起来更加方便,使用起来也更加简单。在该小节中,笔者会介绍如何用两种方式进行打包,并且会介绍下打包后生成的三个文件(夹)。
笔者知道学完本节的话,部分读者可能会立即去打包,但是打包可能会出错,或者是运行出错。别急,后面章节会讲怎么解决错误的。
1. 文件夹模式打包
现在在桌面新建一个文件夹名为la_vie,文件夹中有一个名为belle的py文件(笔者在之后的讲解中都会拿这个py文件来进行打包演示):
我们在belle.py文件中输入以下代
import
我们可以打开命令行窗口,然后输入pyinstaller C:/Users/Desktop/la_vie/belle.py (不推荐)
或者可以直接cd到项目路径下,输入pyinstaller belle.py即可打包:
注:cd命令其实比较麻烦,更快的方法是直接在项目文件夹中同时按住shift键和鼠标右键,选择在“此处打开命令行窗口“(或者是"在此处打开Powershell窗口"),之后在弹出的命令行窗口中我们发现路径已经是正确的了。笔者在讲解中将都使用该方法,省去cd命令。
打包成功的话,我们可以在最后看到类似这样的语句"Building...completed successfully":
接着我们发现项目文件夹下多出了三个文件(夹),名称分别是build,dist和belle.spec,而我们需要的可执行文件就在dist文件夹中。点击进入dist文件夹后,会发现有一个belle文件夹 ,这个文件夹就是我们需要的了——其中有可执行文件以及相关依赖。
然后我们双击打开exe可执行文件,在弹出的"黑框"中(也就是命令行窗口)出现了"Hello World"字符串,程序运行成功。
注:打包成功跟运行成功是两个概念。前者指成功生成可执行文件,而后者指可执行文件运行没有问题,打包成功不代表程序运行没问题。
2. 单文件模式打包
所谓单文件模式打包就是打包后在dist文件夹中只有一个可执行文件,全部的依赖文件都已经被打包进去了。这样很方便,对不怎么懂编程或者电脑操作不是很熟练的客户来讲也比较友好。
要把belle.py打包成一个文件,我们只需要加一个-F命令:
pyinstaller -F belle.py
打包成功后,我们在dist文件夹中双击生成的可执行文件,同样弹出黑框,并显示”Hello World“字符串:
注:虽然单文件模式打包后的结果比较友好,但通常遇到的问题和麻烦比文件夹模式打包要更多,笔者会在之后章节进行讲解。
3. build, dist和spec文件(夹)简介
打包结束后,PyInstaller会在build文件夹中生成一些日志文件以及工作文件,而在dist文件夹中的是已经打包好的文件。spec文件中存储着打包时所用的命令以及要打包的相关文件,它的作用就是告诉PyInstaller如何来进行处理。
这里就简单讲下这三个文件(夹)的作用,笔者会在”PyInstaller打包进阶“中更深入讲解。
如果现在要给其他人使用:
- 若用文件夹模式打包,读者需要把打包好的整个belle文件夹发过去,而你的朋友或者客户只需要点击文件夹中的belle.exe可执行文件即可运行程序。
- 若用单文件模式打包,读者把dist文件夹下的belle.exe可执行文件发过去即可
build文件夹和spec文件跟程序运行没有关系,读者可以删掉。