首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PyQt5:PyQt5程序打包2

PyQt5

75篇

PyQt5:PyQt5程序打包2

导读:完结

LEARN MORE

正文

今天我们用计算器的例子打包一下这个应用程序(Windows7系统下)。

1

简单的打包

在屏幕上出现大量的INFO信息后,我们看到程序的当前目录出现了build、dist目录和calculator.spec文件。

在dist文件夹中,您可以找到分发给用户的捆绑应用程序calculator.exe。除了这个文件外,还有65个文件供这个文件使用。

对于某些用途,您可以编辑myscript.spec的内容(在使用规范文件下描述)。执行此操作后,您将PyInstaller spec文件而不是脚本:

myscript.spec文件包含以脚本文件作为参数运行时指定的选项提供的大部分信息。使用pyinstaller运行spec文件时,通常不需要指定任何选项。从spec文件构建时,只有少数命令行选项有效。

例如,您可以提供脚本或spec文件的路径

或者在Windows上,

我们运行该程序的时候,出现一个命令行窗口,这个是方便我们进行命令行交互使用的,事实上这个程序我们不需要命令行交互。

总的可执行文件大小84.4MB,压缩成rar文件大约26.6MB,文件不小。

2

单一文件打包

我们再试试把它打包成单一文件,同时去掉命令行窗口。

打包后,只有一个文件,而且没有命令行窗口了。如下图:

此时文件大小33.2MB,压缩成rar文件后33.0MB,说明文件已经压缩过了,压缩空间不大。

换图标

我们在上面的图片中看到程序的图标是这样的,真丑!

换一个自己喜欢的吧!

效果如下:

这下好看些了。

这里特别注意

我们选择的icon要符合Windows操作系统的标准,推荐如下大小:

应用程序图标和控制面板项:全套包括16x16,32x32,48x48和256x256(代码比例介于32和256之间)。 .ico文件格式是必需的。

对于经典模式,全套为16x16,24x24,32x32,48x48和64x64。

所以我们已经建议标准尺寸:

如果我们想支持高DPI设置,完整列表还将包括以下尺寸:

3

虚拟环境下打包

这里使用工具是virtualenv,这个是什么东东请自行百度。

我们先建立一个虚拟开发环境,这里使用参数“—no-site-packages”,已经安装到系统Python环境中的所有第三方包都不会复制过来,得到的Python运行环境较为干净。

进入我们虚拟开发环境

出现(venv)这个,表示成功进入。

因为我们这个程序只涉及PyQt5,其它的都是标准模块,所以我们pip安装PyQt5和PyInstaller。

当我们虚拟环境输入pip安装PyQt5的时候,可能出现如下错误:

简单的解决办法是:

这个语句就能安装第三方库了。

然后我们再使用命令打包一下:

打包后的程序大小是27.3MB,小了几MB。

增加upx打包

UPX是一种适用于大多数操作系统的免费实用程序。 UPX压缩可执行文件和库,使它们更小。

UPX适用于大多数操作系统,可以压缩大量可执行文件格式。有关下载的信息,请参阅UPX主页,以及支持的可执行格式列表。

https://upx.github.io/

下载页面:

https://github.com/upx/upx/releases/tag/v3.95

压缩的可执行程序包含在UPX启动代码中,该代码在程序启动时动态解压缩程序。解压缩后,程序正常运行。对于已经UPX压缩的PyInstaller单文件可执行文件,完整的执行顺序是:

压缩程序在UPX解压缩器代码中启动。

解压缩后,程序执行PyInstaller引导加载程序,为Python创建临时环境。

Python解释器执行您的脚本。

PyInstaller在执行路径或使用—upx-dir选项指定的路径上查找UPX。如果存在UPX,PyInstaller会将其应用于最终的可执行文件,除非给出了—noupx选项。 UPX经常与PyInstaller输出一起使用,通常没有任何问题。

执行命令如下:

打包后大约24MB左后,但是运行时存在如下问题:

缺少Qt组件无法正常启动,提示需要有Qt platforms plugin,于是我们来到…Python36\Lib\site-packages\PyQt5\Qt\plugins\platforms 这个文件夹,把这个文件夹拷贝到和.exe文件一个路径下,出现想要的程序了。

4

最后

好的,本期更完!帮助文档上的内容非常丰富,建议多看看。

如果你喜欢本篇文章,请给我点赞

赞赏(推荐)

分享给你的好友们吧!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181011G17RSB00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券