导语
这是一篇利用Pyinstaller打包.py文件的简明教程,个人感觉内容较为简略,仅供参考。
让我们愉快地开始吧~
演示环境
操作系统:
Windows10
Python版本:
3.6.4
Pyinstaller版本:
3.3.1
安装
安装python并添加到环境变量之后,在终端执行如下命令即可:
pip install pyinstaller
截图如下:
若安装失败,可到:
https://www.lfd.uci.edu/~gohlke/pythonlibs/
下载编译好的whl文件:
然后在终端执行:
pip install xxx.whl
注:请自行将xxx修改为你下载的whl文件名,别傻乎乎的就用xxxT_T。
测试是否安装成功:
普通打包
若需将xxx.py文件打包,只需在终端执行:
pyinstaller xxx.py
注:终端需切换至xxx.py文件所在目录下。
常用可选项及说明:
-F:打包后只生成单个exe格式文件;
-D:默认选项,创建一个目录,包含exe文件以及大量依赖文件;
-c:默认选项,使用控制台(就是类似cmd的黑框);
-w:不使用控制台;
-p:添加搜索路径,让其找到对应的库;
-i:改变生成程序的icon图标。
完整可选项及说明:
特殊打包
我们可以通过编辑spec文件来满足一些特殊的打包要求。
注:什么是spec文件?
简单来说其作用就是用来告诉Pyinstaller如何打包你的py文件。当你在终端使用命令自动打包py文件时,pyinstaller会首先自动创建一个spec文件。一般情况下,我们不需要自己编辑spec文件,除非:
① 需要打包资源文件;
② 为可执行文件添加run-time选项,或需要包含一些Pyinstaller不知道的run-time库。
若要为xxx.py生成spec文件,只需在终端执行如下命令即可:
pyi-makespec xxx.py
命令可选项同pyinstaller。
一个简单的spec文件实例:
Analysis:
用于定义python源文件,包括搜索路径和源文件名等。
① scripts:在Analysis中定义的源文件;
② pure:python模块;
③ binaries:动态库;
④ datas:数据文件,包括图片字体等;
⑤ zipfiles:zip格式的依赖文件,一般是egg格式的库文件。
PYZ:
将python文件压缩打包,包含程序运行需要的所有依赖,输入一般是Analysis.pure。
EXE:
打包生成exe文件,根据上面两项生成。EXE子任务包括Analysis的所有5个输出项以及程序运行所需的一些配置文件和动态库。
配置文件和动态库通过TOC格式来配置,格式为(name, path, typecode),例如:
typecode包括:
① EXTENSION:python扩展库;
② PYSOURCE:python脚本;
③ PYMODULE;
④ PYZ;
⑤ PKG;
⑥ BINARY:动态库;
⑥ DATA:数据文件;
⑦ OPTION。
COLLECT:
用来构建最终的生成目录,可以复制其他子任务生成的结果,并拷贝到指定目录,形成最终的打包结果,COLLECT也可以没有。
编辑完xxx.spec文件后,在终端执行:
pyinstaller xxx.spec
命令可选项包括:
–upx-dir,
–distpath,
–noconfirm,
–ascii。
即可生成所需的app(.exe)文件了。
实战演示
以昨天的表白小软件为例,视频演示一下如何利用pyinstaller打包py文件。
(1)普通打包
(2)特殊打包
关注微信公众号“Charles的皮卡丘”,公众号内回复“pyinstaller打包”即可获取本节内容所涉及到的所有相关文件。
参考文献
1.https://blog.csdn.net/u010159842/article/details/53212443
2.http://legendtkl.com/2015/11/06/pyinstaller/
3.https://hk.saowen.com/a/f20517489c32e8dc9d023c5db0bdc56b77893c89029f64c4b5c1be1ea3762a55
4.https://stackoverflow.com/questions/41204057/pygame-not-loading-png-after-making-exe-with-pyinstaller
○
○
Charles的皮卡丘
Pikachu~
领取专属 10元无门槛券
私享最新 技术干货