当前位置: 首页 > news >正文

不同Python版本和wxPython版本用pyinstaller打包文件大小对比

1、确定wxPython和Python版本的对应关系

在这里可以找到Python支持的所有wxPython版本:https://pypi.tuna.tsinghua.edu.cn/simple/wxpython/

由于Python从3.6版本开始支持f字符串、从3.9版本开始不支持Windows7操作系统,所以我仅筛选3.6-3.8之间的版本。

应用正则表达式:

.*cp3[6-8].*win32.whl

得到以下版本:

wxPython-4.0.0-cp36-cp36m-win32.whl
wxPython-4.0.0a1-cp36-cp36m-win32.whl
wxPython-4.0.0a2-cp36-cp36m-win32.whl
wxPython-4.0.0a3-cp36-cp36m-win32.whl
wxPython-4.0.0b1-cp36-cp36m-win32.whl
wxPython-4.0.0b2-cp36-cp36m-win32.whl
wxPython-4.0.1-cp36-cp36m-win32.whl
wxPython-4.0.2-cp36-cp36m-win32.whl
wxPython-4.0.2-cp37-cp37m-win32.whl
wxPython-4.0.3-cp36-cp36m-win32.whl
wxPython-4.0.3-cp37-cp37m-win32.whl
wxPython-4.0.4-cp36-cp36m-win32.whl
wxPython-4.0.4-cp37-cp37m-win32.whl
wxPython-4.0.5-cp36-cp36m-win32.whl
wxPython-4.0.5-cp37-cp37m-win32.whl
wxPython-4.0.6-cp36-cp36m-win32.whl
wxPython-4.0.6-cp37-cp37m-win32.whl
wxPython-4.0.7-cp36-cp36m-win32.whl
wxPython-4.0.7-cp37-cp37m-win32.whl
wxPython-4.0.7-cp38-cp38-win32.whl
wxPython-4.0.7.post1-cp36-cp36m-win32.whl
wxPython-4.0.7.post1-cp37-cp37m-win32.whl
wxPython-4.0.7.post1-cp38-cp38-win32.whl
wxPython-4.0.7.post2-cp36-cp36m-win32.whl
wxPython-4.0.7.post2-cp37-cp37m-win32.whl
wxPython-4.0.7.post2-cp38-cp38-win32.whl
wxPython-4.1.0-cp36-cp36m-win32.whl
wxPython-4.1.0-cp37-cp37m-win32.whl
wxPython-4.1.0-cp38-cp38-win32.whl
wxPython-4.1.1-cp36-cp36m-win32.whl
wxPython-4.1.1-cp37-cp37m-win32.whl
wxPython-4.1.1-cp38-cp38-win32.whl
wxPython-4.2.1-cp38-cp38-win32.whl

取一些大版本号,和新增Python支持的版本,还剩这些:

wxPython-4.0.0-cp36-cp36m-win32.whl
wxPython-4.0.2-cp36-cp36m-win32.whl
wxPython-4.0.2-cp37-cp37m-win32.whl
wxPython-4.0.7-cp36-cp36m-win32.whl
wxPython-4.0.7-cp37-cp37m-win32.whl
wxPython-4.0.7-cp38-cp38-win32.whl
wxPython-4.1.0-cp36-cp36m-win32.whl
wxPython-4.1.0-cp37-cp37m-win32.whl
wxPython-4.1.0-cp38-cp38-win32.whl
wxPython-4.1.1-cp36-cp36m-win32.whl
wxPython-4.1.1-cp37-cp37m-win32.whl
wxPython-4.1.1-cp38-cp38-win32.whl
wxPython-4.2.1-cp38-cp38-win32.whl

2、用不同的Python版本wxPython版本打包成exe文件

安装好Python和pyinstaller,这个就不说了。

由于打包32位版的Python程序普遍比64位版体积小很多,所以我就只下载32位版本的Python了。

首先写一个wxPython程序,嗯。。非常简单:

# demo.pyimport wxapp = wx.App()
frame = wx.Frame(None, -1, 'My Frame')
frame.Center()
frame.Show()
app.MainLoop()

然后运行批处理文件开始打包:

@echo offpy -3.6-32 -m pip install wxpython==4.0.0
py -3.6-32 -m PyInstaller -ywsF --noupx demo.py --name demo-py36-wx400.exepy -3.6-32 -m pip install wxpython==4.0.2
py -3.6-32 -m PyInstaller -ywsF --noupx demo.py --name demo-py36-wx402.exepy -3.7-32 -m pip install wxpython==4.0.2
py -3.7-32 -m PyInstaller -ywsF --noupx demo.py --name demo-py37-wx402.exepy -3.6-32 -m pip install wxpython==4.0.7
py -3.6-32 -m PyInstaller -ywsF --noupx demo.py --name demo-py36-wx407.exepy -3.7-32 -m pip install wxpython==4.0.7
py -3.7-32 -m PyInstaller -ywsF --noupx demo.py --name demo-py37-wx407.exepy -3.8-32 -m pip install wxpython==4.0.7
py -3.8-32 -m PyInstaller -ywsF --noupx demo.py --name demo-py38-wx407.exepy -3.6-32 -m pip install wxpython==4.1.0
py -3.6-32 -m PyInstaller -ywsF --noupx demo.py --name demo-py36-wx410.exepy -3.7-32 -m pip install wxpython==4.1.0
py -3.7-32 -m PyInstaller -ywsF --noupx demo.py --name demo-py37-wx410.exepy -3.8-32 -m pip install wxpython==4.1.0
py -3.8-32 -m PyInstaller -ywsF --noupx demo.py --name demo-py38-wx410.exepy -3.6-32 -m pip install wxpython==4.1.1
py -3.6-32 -m PyInstaller -ywsF --noupx demo.py --name demo-py36-wx411.exepy -3.7-32 -m pip install wxpython==4.1.1
py -3.7-32 -m PyInstaller -ywsF --noupx demo.py --name demo-py37-wx411.exepy -3.8-32 -m pip install wxpython==4.1.1
py -3.8-32 -m PyInstaller -ywsF --noupx demo.py --name demo-py38-wx411.exepy -3.8-32 -m pip install wxpython==4.2.1
py -3.8-32 -m PyInstaller -ywsF --noupx demo.py --name demo-py38-wx421.exe

3、不同Python/wxPython版本的打包文件大小对比

运行结果:

打包文件大小对比

汇总表格:

wx\py3.63.73.8
4.0.08.69 MB--
4.0.28.70 MB8.13 MB-
4.0.78.73 MB8.16 MB8.17 MB
4.1.010.03 MB9.46 MB9.48 MB
4.1.110.10 MB9.54 MB9.55 MB
4.2.1--9.85 MB

最终结论:

  1. 总体来说,wxPython的版本越高,打包文件体积越大。
  2. 现在wxPython总共有3个minor版本,在不同的minor版本之间,文件大小差异较大,不同的patch版本之间文件体积差异较小。
  3. 在不同的Python版本之间,Python 3.7 版本打包的文件体积最小,其次是 Python 3.8,最后是 Python 3.6。
  4. 最早支持 Python 3.7 的版本是 wxPython-4.0.2,所以用 Python 3.7+wxPython-4.0.2 会得到的文件体积最小。
http://www.lryc.cn/news/328864.html

相关文章:

  • 【C语言】结构体详解(一)
  • AI时代-普通人的AI绘画工具对比(Midjouney与Stable Diffusion)
  • 【蓝桥杯】矩阵快速幂
  • C语言使用STM32开发板手搓高端家居洗衣机
  • 【Hello,PyQt】QTextEdit和QSplider
  • 【力扣】191.位 1 的个数、485.最大连续 1 的个数
  • 蓝桥杯 java 承压计算
  • leetcode268-Missing Number
  • 【jenkins+cmake+svn管理c++项目】jenkins回传文件到svn(windows)
  • 数据结构·二叉树(2)
  • MATLAB算法实战应用案例精讲-【毕业季论文专用】人工智能视觉检测技术及其在实际应用中的挑战与前景
  • Linux虚拟机环境搭建spark
  • STL的string容器
  • 半导体工艺技术
  • acwing算法提高之图论--单源最短路的扩展应用
  • SQLServer数据库使用Function实现根据字段内容的拼音首字母进行数据查询
  • Linux——信号概念与信号产生方式
  • 赋值语句还能当判断条件?涨芝士了!
  • 数据结构 - 算法效率|时间复杂度|空间复杂度
  • 接口自动化之 + Jenkins + Allure报告生成 + 企微消息通知推送
  • 『Apisix安全篇』探索Apache APISIX身份认证插件:从基础到实战
  • 【01-20】计算机网络基础知识(非常详细)从零基础入门到精通,看完这一篇就够了
  • 『大模型笔记』常见的分布式并行策略(分布式训练)
  • java 企业工程管理系统软件源码+Spring Cloud + Spring Boot +二次开发+ 可定制化
  • 3D数据格式导出工具HOOPS Publish如何生成高质量3D PDF?
  • 【springboot】闲话 springboot 的几种异步机制 及 长轮询的概念和简单实现
  • Mysql---安全值守常用语句
  • containerd快速安装指南
  • Javascript - 正则表达式相关的一些基础的范例
  • JUC:线程活跃性(死锁、活锁、饥饿)