首先在PyQt的目录里打开命令行
第一步:输入打包命令: pyinstaller -Fw window.py # window.py为程序的执行文件名
-F: 表示生成单个可执行文件
-w: 表示去掉控制台窗口
-c: 表示启动控制台
执行完这个命令之后,会生成window.spec这个文件
如果程序执行时出现,"超过最大递归深度",这个时候,要去生成的window.spec中更改一些参数
首先 导入sys这个模块
import sys
sys.setrecursionlimit(5000)
a = AnaLysis(['window.py'], # 要注意,执行的文件是py文件
excludes = ['urllib3'], # 一般会自动调用这个库,如果没有调用,就要手动加上
noarchive = False) # 表示启动程序默认关闭控制台
第二步: 在Terminal终端输入命令: pyinstaller window.spec # 这个时候就会生成exe可执行文件
如果启动执行文件加载不出图片,将除了新生成的build,dist以外的所有的文件或引用文件,复制到dist文件夹中,打包结束.
2019/3/28
今天打包时又有了新发现,特在此补充
之前打包一直会使用会加 -F 虽然是生成了单个exe可执行文件,看上去很清爽,但是这个命令它把所有的环境都整合在了一起,如果我们的程序比较大的话,启动时就会非常慢(如果你的电脑性能一般的话,加载时间会更长),因为它加载的数据都是静态加载的,需要去封装的包里一个个的去查找,所以速度变慢了. 所以,去掉 -F 之后,我们的启动速度流畅无比,体验效果也大大提升.去掉它之后,生成的dist文件中你程序中要用到的环境都会被放在dist中,这个时候所用到的环境就变成了动态加载的,速度就跟你用代码启动程序的速度是一样的.
网友评论