【开发杂记】如何用pyintaller打包出体积较小的exe文件
0 前言
用程序解决一些业务上的重复劳动,由于内网环境且没有开发环境,常常需要做成.exe文件到其他电脑上执行。因为本人接触python多些,就用python解决,流程总结如下。
1 用Anaconda创建一个新的虚拟环境
网上提供的方法是用pipevn,但我觉得这种操作还麻烦些,不如直接用anaconda直接创作一个新的python环境,此时环境是纯净的,不会有非必要的包。

2 用pip或conda安装所需要的包
所需要的包其实分两部分:
- pyinstaller及其所依赖的包
一般直接pip install pyinstaller,但常常在执行操作时还会提示因为少openpyxl而打包失败,因此通过最后打包命令的黑框反馈的提示进行补包。 - 自己写的.py里导入的包
3 使用UPX进行压缩
UPX要专门下载,下载传送门。下载后如果是压缩包则先解压,我们需要的仅为upx.exe文件。把他复制到Anaconda之前虚拟环境的Scripts文件夹下。
4 执行打包命令
先打开步骤1创建的虚拟环境,会出现CMD窗口。

通过CMD命令跳转到.py文件的目录上,注意如果跨盘,假设是跳到D盘直接输D:,再复制文件夹路径,在CMD中用cd命令一步跳转。

跳转后输入打包命令:
pyinstall -i icon.ico -F myexe.py
其中icon.ico是自定义的图标,myexe.py是要打包的程序。CMD会有打包流程的信息提示,注意要看到UPX is available才表示UPX设置好了。在输出结果里,打开dist文件,exe文件就在里面了。