Pyinstallerd的应用记录
前言
当我们用py完成一些功能,可以通过Pyinstaller将源码打包成exe来独立运行,用户使用时只需要执行这个exe文件即可,不需要在机器上再安装Python及其他包就可运行了。(理论上,后面会附加一些我自己实际运用时遇到的一些问题)
Pyinstaller打包方式一般分为 直接输入指令 和 利用spec文件进行打包。由于直接输入指令实际就是根据指令生成spec文件,再根据spec文件的内容进行打包操作,所以一下重点说明spec文件的内容,结尾处附上指令以供参考。
SPEC打包
第一步当然是最基础的用法,我们先创建一个main.py作为启动脚本。在控制台输入
pyinstaller [-F/-D] [-w/-c] [-i xxx.ico] main.py
我们可以发现路径下多了main.spec文件。后续我们可以修改spec文件里的内容,然后输入指令来进行打包操作了
pyinstaller main.spec
后续打包的参数越来越多,每次输入一大堆参数显然不如直接使用spec来的高效,所以尽量使用spec文件进行打包操作。
SPEC内容说明
下图就是对一个main.py进行打包时,默认生成的spec文件,我们来看下每个参数表示的含义
变量 | 含义 |
---|---|
a | Analysis类的实例,要求传入各种脚本用于分析程序的导入和依赖。a中内容主要包括以下四部分:scripts,即可以在命令行中输入的Python脚本;pure,程序代码文件中的纯Python模块,包括程序的代码文件本身;binaries,程序代码文件中需要的非Python模块,包括–add-binary参数指定的内容;datas,非二进制文件,包括–add-data参数指定的内容。 |
pyz | PYZ的实例,是一个.pyz文件,包含了所有pure中的所有Python模块。 |
exe | EXE类的实例,这个类是用来处理Analysis和PYZ的结果的,也是用来生成最后的exe可执行程序。</ |