打包环境准备

upx下载

https://github.com/upx/upx/releases

访问uxp项目版本页,下载对应平台的压缩包

打包工具安装

pip install nuitka

打包命令参数如下

	def run(self):
		"""
		开始构建
		:return:
		"""
		upx_path = path.abspath("tools/upx")
		cmd = f"nuitka3 --mingw64 --show-progress --disable-ccache --plugin-enable=pyqt5,upx --upx-binary={upx_path} --output-dir=out  --include-package=model main5.py"
		print(cmd)
		if int(system(cmd)) == 0:
			print("构建成功")
		else:
			print("构建失败")
			exit(5)

说明

upx_path

其中,upx_path的路径是upx的可执行文件,如下

image-1662710267597

该参数最好使用绝对路径

plugin-enable=pyqt5,upx

启用的插件,由于我的程序是pyqt5开发的,所以加上pyqt5以及上一步设置的upx

include-package=model

这是自定义包目录,如果你的程序有多个py文件组成,那就需要使用这个参数指定其他py文件所在的相对路径

效果

image-1662710474686

image-1662710500928

总大小才203kb,相对使用pyinstaller打包的62MB对比,其效果天差地别