【开发杂记】如何用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文件就在里面了。