在将python程序打包成可执行文件的时候,遇到一些问题,总结一下以供之后使用。
打包可以打成一个执行文件,或者一个文件夹;两者的区别是:前者是将所有的依赖模块和资源全部集合到一起,执行的时候再将资源和依赖模块解压到用户的tmp目录下(具体应该是:xxx\用户\AppData\Local\Temp\xxx);后者则是将资源放在生成的文件夹中,执行的时候直接调用;所有后者执行的时候比前者能快一些。
a) 选择正确的pyinstaller;如果存在多个python版本,确定打包使用的pyinstaller是调试时候用的python库对应的。
b) 调用的资源可以通过spec文件导入。
a) pyinstaller -Fw .\source\main.py (-w隐藏命令行窗口,-F单个文件)
b) 会在当前目录生成一个spec文件,优化该文件
c) pyinstaller -w .\main.spec (打包完成)
默认生成的spec文件,一般需要注意几个点:datas,excludes,name,icon。
datas 是一个列表,可以放程序通过寻找路径调用的内容。格式是(‘C:\ \local_resource\通讯连接.png’, ‘.\local_resource’ )
excludes 存不需要的模块
name是生成执行文件的名称
icon是其图标