Pyinstaller 打包pyqt,paddle经验总结(保姆级超详细讲解避坑必看)

本文以打包一个pyqt汇率计算器和一个pyqt+paddle的模型为例进行讲解并介绍了upx框架的使用

Pyinstaller 打包程序,生成可执行文件

4.5.1 Pyinstaller 介绍及安装

1)基本介绍

 在创建了独立应用(自包含该应用的依赖包)之后,还可以使用 PyInstaller

Python 程序生成可直接运行的程序,这个程序就可以被分发到对应的

Windows Mac OS X 平台上运行。

2)安装

 Python 默认并不包含 PyInstaller 模块,因此需要自行安装 PyInstaller

块。强烈建议使用 pip 在线安装的方式来安装 PyInstaller 模块,不要使用离线

 包的方式来安装,因为 PyInstaller 模块还依赖其他模块,pip 在安装 PyInstaller

 模块时会先安装它的依赖模块。

命令:

pip install pyinstaller

  PyInstaller 模块安装成功之后,在 Python 的安装目录下的 Scripts(

 意,每个人的不一样,去找你自己的:D:\Python\Python36\Scripts) 目录下会增

加一个 pyinstaller.exe 程序,接下来就可以使用该工具将 Python 程序生成 EXE

程序了。

4.5.2 Pyinstaller 的使用方法及常用参数介绍

1)使用方法

PyInstaller 工具的命令语法如下:

pyinstaller 选项 Python 源文件

不管这个 Python 应用是单文件的应用,还是多文件的应用,只要在使用

 pyinstaller 命令时编译作为程序入口的 Python 程序即可。

 PyInstaller 工具是跨平台的,它既可以在 Windows 平台上使用,也可以在 Mac

OS X 平台上运行。在不同的平台上使用 PyInstaller 工具的方法是一样的,它们

 支持的选项也是一样的。

2 pyinstaller 的参数使用介绍

常用参数介绍:

-D,–onedir:创建一个文件夹包含exe 文件(默认)

-F,–onefile:打包之后只会生成一个exe 的文件

-c,–console,–nowindowed:使用控制台窗口(默认)

-w,–windowed,–noconsole:使用窗口显示

-i:设置打包exe 的图标,默认使用的是Python 的图标

4.5.3 单个文件的打包

重要提醒:打包前,关闭所有的杀毒软件、卫士等等。

使用以下程序,尝试打包:

import cv2

img = cv2.imread("logo.jpg")

cv2.imshow("logo",img)

cv2.waitKey()

这个程序展示了使用 OpenCV 来读取图片然后显示,编辑完成之后进入到该目录下,运行

pyinstaller -F exmple.py,看到如下信息表示打包成功:

 

在项目目录下发现多了 dist build 两个目录和一个*.spec 的文件。

 

打开 dist 目录,可以发现下面多了一个 example.exe 的可执行文件,双击运行发现并没有

显示图片,此时我们需要将 logo.jpg 拷贝到当前目录下,然后再运行 exe 程序就可以看到

如下结果

 

如果不想显示控制台打包的时候可以加上-w 参数,pyinstaller -F -w example.py,此时打

包生成的 exe 程序执行时不会出现控制台窗口。

修改exe 的图标

默认使用的图标如下

 

如果想更换图标,可以使用:

ico 下载网址:https://www.easyicon.net/

pyinstaller -F -w -i=panda.ico example.py通过-i 参数可以指定 ico 的图标,如果生成的 exe 的图标没有变化试着将 ico 图标文件拷贝

exe 的相同目录下。

pyInstaller 一般安装在 python 安装路径/Script 下面

pyinstaller -F xxx.py 打包 exe 命令,但是会有黑窗口

pyinstaller -F -w xxx.py 去除黑窗口

另外,建议每次打包结束后,再进行一次全新打包时,将之前 proj 目录下的:

__pycache__ 文件夹

build 文件夹

dist 文件夹

******.spec 文件 *****为打包的文件名)

上述四个全部删除后再重新打包,以免出问题(当然,不是删了一定没问题,也

不是不删一定有问题~~~)。

4.5.4 增加压缩减小可执行文件的方法UPX

1) 未增加 upx 打包

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

 UPX 适用于大多数操作系统,可以压缩大量可执行文件格式。有关下载的

信息,请参阅 UPX 主页,以及支持的可执行格式列表。

 增加 UPX 之前,打包的报文如下:

 

关注发现: UPX is not available.

说明程序中没有装在 UPX。需要配置 UPX 才能正常工作。

这种情况下打包的结果,以上例的大小为例:(50MB 左右)

 

2) 下载 UPX

 

到官网 https://upx.github.io/ 下载了 UPX(我的是 Window 64 版本), 下载下 来是一个压缩包

Github 官网经常上不去,多试几次~~~

(2) 解压得到 upx.exe 文件

(3) exe pyinstaller , C:\ProgramData\Anaconda3\envs\Paddle37\Scripts

 

(4 然后再重新运行 pyinstaller 命令就会提示: UPX is available

 

5 重新打包后的大小 30MB 左右)

 

4.5.5 尝试将各个案例进行打包

1)汇率换算器的打包

 

打包完效果:

 

2)登录界面打包 软件执行后效果:

 

3)动物分类软件打包

可能遇到的错误:

解决方案:

更新 hook 文件 我的路径:

C:\ProgramData\Anaconda3\envs\Paddle37\Lib\site-packages\PyInstaller\hooks (主要关注你的环境位置,这里 Paddle37 是我的虚拟环境名)

增加一个文件 hook-paddle.py 文件

文件内容:

# hook-paddle.py

from PyInstaller.utils.hooks import collect_data_files

datas = collect_data_files("paddle")

保存好即可使用(已经尝试,貌似不需要一个 hook-paddlehub.py 的文件,但是

在调用其他模块时,不排除需要增加其他模块的 hook 文件,请根据自己的使用

情况决定)。

打包成执行程序,并运行

其他错误

1 路径有中文

2 路径有其他标点符号(包括空格等)

解决方法:

针对 1):更换无中文路径,全英文,且加入空格等;

结果:解决,软件正常运行。

针对 2):第一次尝试:去掉其他符号并用中文路径;

结果:软件无法正常运行,问题仍然一样。

  • 6
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gaofeimax

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值