一、安装 pyinstaller
pip install -i https://mirrors.aliyun.com/pypi/simple/ --upgrade pyinstaller
二、打包
pyinstaller -F -w py文件路径
tip:
程序简单,建议使用 -F 模式,优点:封装一个文件,清爽
程序复杂,建议使用 -D 模式,优点:运行速度快
如果想要查看运行信息【程序包含 print 类似语句】,去掉 -w 参数,即显示CMD窗口
-F -w -D 参数使用参考: 利用pyinstaller打包exe文件
封装exe小例子: Python selenium —— 将你的自动化脚本打包成一个exe
pyinstaller 不会将代码运行需要的依赖的数据文件目录或者文件封装起来,它仅仅封装‘代码’,因此封装以后需要将exe依赖的数据目录和文件复制到 exe 的目录下,否则双击exe运行可能失败【cmd一闪而逝,什么没发生】
封装前:
使用 pyinstaller -F 封装
三、pyinstaller打包exe(64位)和运行太慢等问题解决
1、原因:
搜索 “pyinstaller打包太大”
2、解决方案
① 使用 anaconda 创建一个新的python环境,这个环境需要仅仅安装待封装project所需要的包,其余不安装并且卸载不需要的包
② 使用pipenv创建新的python环境,思想与anaconda相同
③ 尽量将 import 语句 转化为 from * import
具体可以看以下文章:
pyinstaller打包exe(32位和64位)和运行太慢等问题解决 用 Pyinstaller 打包 Python 程序 + 解决打包结果过大的问题
3、使用 Enigma Virtual Box 封装 pyinstaller -D 模式 多文件【-D 模式运行快】
下载:Enigma Virtual Box
链接:https://pan.baidu.com/s/1qxUCK0H2tOAU2fnUBVlShg
提取码:3h09
- 案例: 将 add_logo_text.py 文件进行封装 exe 【cv为批量图片自定义添加文字/水印logo代码】
使用原因:
使用 Enigma Virtual Box 可以将多个文件封装成一个文件,与 pyinstaller -D 不同的是,这种封装后程序运行速度比后者速度要快很
多【若项目复杂 pyinstaller -F 生成的exe文件双击打开cmd会黑屏一段时间】
- 封装前
- pyinstaller add_logo_text.py 封装【使用纯净的python环境】
- 使用 Enigma Virtual Box 封装
第一步: 打开Enigma Virtual Box 选中主exe
第二步: 将除了 主文件exe和上述添加的数据目录 全部选中拖入 Enigma Virtual Box 中
第三步:打包成功后,退出软件,点击保存 .evb文件
保留生成的 exe 文件、.evb文件、依赖的数据目录,其余可以全部删除 ,此时 exe 有 176 M,如果使用 pyinstaller -F 生成
exe 文件 仅有 66M,但这个exe的运行速度高于后者