本文主要是介绍不同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\py | 3.6 | 3.7 | 3.8 |
---|---|---|---|
4.0.0 | 8.69 MB | - | - |
4.0.2 | 8.70 MB | 8.13 MB | - |
4.0.7 | 8.73 MB | 8.16 MB | 8.17 MB |
4.1.0 | 10.03 MB | 9.46 MB | 9.48 MB |
4.1.1 | 10.10 MB | 9.54 MB | 9.55 MB |
4.2.1 | - | - | 9.85 MB |
最终结论:
- 总体来说,wxPython的版本越高,打包文件体积越大。
- 现在wxPython总共有3个minor版本,在不同的minor版本之间,文件大小差异较大,不同的patch版本之间文件体积差异较小。
- 在不同的Python版本之间,Python 3.7 版本打包的文件体积最小,其次是 Python 3.8,最后是 Python 3.6。
- 最早支持 Python 3.7 的版本是 wxPython-4.0.2,所以用 Python 3.7+wxPython-4.0.2 会得到的文件体积最小。
这篇关于不同Python版本和wxPython版本用pyinstaller打包文件大小对比的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!