Python应用程序打包体积过大问题解决办法

Posted by FanHao on 2024-01-15

主要原因

python作为解释性语言,打包体积相较于编译型语言,打包程序体积大。如果需要追求程序体积小,程序运行速度快,只能用编译型语言解决。

问题引入

实测在自己电脑python开发环境下打包,程序体积高达几百MB。为什么出现如此情况?

1
2
推测原因:python开发环境有很多其他第三模块包,不够干净,打包时同时将那些非必须第三包程序也打包进去。
解决方案:使用python虚环境,只安装程序运行所必须的包解决程序体积过大问题

实际应用验证

以打包pdu控制程序为例进行验证

1
此程序第三方包为pyside6、pyserial包

  1. 终端切换目录,当前目录创建新的python虚环境env
    1
    python -m venv env
  2. 如下命令切换到虚环境
    1
    env\Scripts\activate
  3. 查看虚环境包
    1
    2
    3
    4
    5
    (env) C:\Users\Administrator\Desktop\my_project\pdu-crtl-tool>pip3 list
    Package Version
    ---------- -------
    pip 20.2.3
    setuptools 49.2.1
  4. 虚环境下安装程序所需的第三包
    1
    2
    3
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyside6
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyserial
    pip install pyinstaller
    因网络问题导致包下载速度慢,可以参考上面使用国内源
  5. 虚环境下使用pyinstaller进行打包
    1
    pyinstaller -F -p C:\Users\Administrator\Desktop\my_project\pdu-crtl-tool> scriptname  C:\Users\Administrator\Desktop\my_project\pdu-crtl-tool\main.py
    在dist路径下查看最终的程序体积,大约40MB大小。
  • 以上实例可验证推测原因符合验证结果