LEARN MORE

正文

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

1

简单的打包pyinstaller calculator.py

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

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

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

pyinstaller myscript.spec

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

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

pyinstaller options… ~/myproject/source/myscript.py

或者在Windows上,

pyinstaller "C:\Documents and Settings\project\myscript.spec"

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

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

2

单一文件打包

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

pyinstaller -F -w calculator.py

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

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

换图标

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

换一个自己喜欢的吧!

pyinstaller -F -w --i "C:\\Users\\Administrator\\Desktop\\PyQt5Calculator\\res\\cc.ico" calculator.py

效果如下:

这下好看些了。

这里特别注意:

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

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

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

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

16 x 16,24 x 24,32 x 32,48 x 48,64 x 64,256 x 256。

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

20 x 20,30 x 30,36 x 36,40 x 40,60 x 60,72 x 72,80 x 80,96 x 96,128 x 128,320 x 320,384 x 384,512 x 512。

3

虚拟环境下打包

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

C:\Users\Administrator\Desktop\venv>virtualenv --no-site-packages venv

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

进入我们虚拟开发环境

C:\Users\Administrator\Desktop\venv>cd ScriptsC:\Users\Administrator\Desktop\venv\Scripts>activate(venv) C:\Users\Administrator\Desktop\venv\Scripts>

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

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

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

(venv) C:\Users\Administrator\Desktop\venv\Scripts>pip install PyQt5Fatal error in launcher: Unable to create process using '"c:\users\administrator\desktop\venv\venv\scripts\python.exe"  "C:\Users\Administrator\Desktop\venv\Scripts\pip.exe" '

简单的解决办法是:

python -m pip install XXX

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

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

pyinstaller -F -w --i "C:\\Users\\Administrator\\Desktop\\PyQt5Calculator\\res\\cc.ico" calculator.py

打包后的程序大小是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输出一起使用,通常没有任何问题。

执行命令如下:

pyinstaller -F -w --i "C:\\Users\\Administrator\\Desktop\\PyQt5Calculator\\res\\cc.ico" --upx-dir "C:\\upx" calculator.py

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

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

4

最后

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

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

赞赏(推荐

)

分享给你的好友们吧!

欢迎关注微信公众号:学点编程吧,发送pyqt575,可以获得计算器的源码。加油!

(ง •̀_•́)ง (*•̀ㅂ•)و

点点最下方的广告也是一种支持啊~!

加入我们的学习交流QQ群,一起学习吧!

看完本文有收获?请转发分享给更多人

猜你喜欢:

更多的PyQt5文章请在微信公众号/在线课程/图文教程中查找。

python安装pyqt5 qml_PyQt5:PyQt5程序打包2相关推荐

  1. Py之cx_Freeze:Python库之cx_Freeze库(程序打包)简介、安装、使用方法详细攻略—案例之实现机器人在线24小时智能翻译

    Py之cx_Freeze:Python库之cx_Freeze库(程序打包)简介.安装.使用方法详细攻略-案例之实现机器人在线24小时智能翻译 导读      将Python程序生成exe程序目前流行这 ...

  2. python安装与程序_二、Python安装和第一个程序

    <1.Python语言介绍 1.官方介绍:Python 是一款易于学习且功能强大的编程语言. 它具有高效率的数据结构,能够简单又有效地实现面向对象编程.Python 简洁的语法与动态输入之特性, ...

  3. python安装文件乱码_Python程序在Windows终端乱码解决方法

    解决方法之一: 在程序中头声明 #!C:\Python27\python # -*- coding: utf-8 -*- ----- 在每一行输出的字符串,模仿下面: print u"你好& ...

  4. python 安装容易吗,Python安装的步骤操作其实是件很容易的事

    在计算机语言的实际应用中Python已成为主流之一,那么你对Python安装的实际相关程序是否了解呢?对Python安装的相关过程中是否产生一些令你头疼的问题呢?如果想知道答案,以下的文章就会告诉你相 ...

  5. 从Noob开始学习python/pyqt5(1)环境安装,工程搭建与打包exe

    前言 本人从今年4月份左右开始想自学python和pyqt5,主要是想提升一下自己的技能,我是一个汽车电子嵌入式软件工程师,每天就是C语言和AutoSAR,感觉都不好意思自称为一个"码农&q ...

  6. 【PyQt5】PyQt5 安装 以及使用 designer 开发 python GUI 界面

    PyQt5 首先安装 Pyhon! PyQt5.pyqt5-tools 安装 安装可能遇到的问题 Qt Creator 简单介绍 界面构成介绍 开发一个最简单的 GUI 程序 拖动布局出一个界面 保存 ...

  7. Python开发Windows桌面应用程序(一)PyCharm+PyQt5开发环境搭建

    前言 最近想开发一套Netty网关日志分析程序,用来分析设备的原始数据.因为网关是放在linux服务器上,之前查看日志是通过Xftp工具将日志下载到本地,然后找到对应的日志数据进行分析. 对于运维人员 ...

  8. Python 安装PyQt5失败:Permission denied:d3dcompiler_47.dll

    使用 pip install PyQt5 直接安装PyQt5会提示出错: 错误信息如下: ERROR: Could not install packages due to an OSError: [E ...

  9. Python制作小软件——1. 安装并使用PyQt5进行界面设计

    最近想学习利用Python进行GUI的设计,网上找了很多教程与方法,用的最多的是使用PyQt+Python就进行开发,同时利用PyQt做出来的界面也是相对而言较为方便且比较美观. 所以自己在闲暇之余, ...

最新文章

  1. 怎么做 慢充 话费_警惕!冒充亲友骗充话费卷土重来
  2. nltk_data数据下载
  3. qtcreator安装后的设置
  4. linux系统管理工具sar(一)
  5. 定义对象或数组直接量时不同引擎对多余逗号的处理
  6. JavaEE基础(十四) /正则
  7. [置顶]       【Visual C++】游戏开发笔记之一——API函数、DirectX的关键系统...
  8. 交互搜索中的自然语言理解技术
  9. POJ1722二维spfa+优先队列优化
  10. Linux中查看日志文件的正确姿势,求你别tail走天下了!
  11. mysql不能删除外键吗,MySQL不能删除外键约束所需的索引
  12. 消息队列RocketMQ性能测试案例
  13. Native Crash 分析
  14. java中equals方法的用法以及==的用法(转)
  15. Python中的进程和线程
  16. c语言中缀表达式求值_数据结构-第三章:栈和队列(栈的应用、括号匹配、表达式转换)
  17. 中职c语言课程教学标准,C语言课程标准.doc
  18. 打印机服务器总是自动停止,win7系统print spooler服务总是自动停止怎么办
  19. CTF训练(密码学)——位移密码
  20. logback打印出mybatis sql日志(转载)

热门文章

  1. 解决ECSHOP后台订单里面点击编辑配送方式时出现的警告问题
  2. MFC遍历窗体所有的控件
  3. HTML表格中的nowrap
  4. java 同步方式 lock_Java的同步锁(Lock)
  5. 【UWB】ELM 极限学习机原理及公式推导
  6. 【STM32】FreeRTOS 系统内核控制函数
  7. 11.2 滑动窗口-机器学习笔记-斯坦福吴恩达教授
  8. ubuntu常用小工具
  9. 【PC工具】文件压缩解压工具winrar解压缩装机必备软件,winRAR5.70免费无广告
  10. 月球计划—ESP8266接入小爱同学控制彩灯