主要原因
python作为解释性语言,打包体积相较于编译型语言,打包程序体积大。如果需要追求程序体积小,程序运行速度快,只能用编译型语言解决。
问题引入
实测在自己电脑python开发环境下打包,程序体积高达几百MB。为什么出现如此情况?1
2推测原因:python开发环境有很多其他第三模块包,不够干净,打包时同时将那些非必须第三包程序也打包进去。
解决方案:使用python虚环境,只安装程序运行所必须的包解决程序体积过大问题
实际应用验证
以打包pdu控制程序为例进行验证1
此程序第三方包为pyside6、pyserial包
- 终端切换目录,当前目录创建新的python虚环境env
1
python -m venv env
- 如下命令切换到虚环境
1
env\Scripts\activate
- 查看虚环境包
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 - 虚环境下安装程序所需的第三包因网络问题导致包下载速度慢,可以参考上面使用国内源
1
2
3pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyside6
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyserial
pip install pyinstaller - 虚环境下使用pyinstaller进行打包在dist路径下查看最终的程序体积,大约40MB大小。
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
- 以上实例可验证推测原因符合验证结果