找回密码
 会员注册
查看: 44|回复: 0

Python实用记录(十五):PyQtPySide6打包成exe,精简版(nuitkapyinstallerauto-py-to-exe)

[复制链接]

4

主题

0

回帖

13

积分

新手上路

积分
13
发表于 2024-9-7 16:06:32 | 显示全部楼层 |阅读模式
方式一:nuitka打包的话,用nuitka更适合,对PySide支持更好。压缩后仅15MB左右。pipinstallnuitkazstandard#PyQt26MB==>14.9MBpython-mnuitka--onefile--windows-disable-console--enable-plugin=pyqt6.py#PySide34MB==>16.8MBpython-mnuitka--onefile--windows-disable-console--enable-plugin=pyside6--follow-import-to=need--output-dir=output.py12345pipinstallpyinstallerpyinstaller-D-i"5.ico"base_camera.py12方式二:pyinstaller第一步:安装环境:pipinstallpyinstaller-ihttps://pypi.tuna.tsinghua.edu.cn/simple1打包前:可使用upx减少打包体积我们需要先下载UPX执行文件,可以自己去搜或者在官网里面下载自己想要的版本,下载下来的是一个压缩包,我们只需要解压后把里面的upx.exe文件复制到pyinstaller.exe同个文件夹(应该是Scripts文件夹)内即可。pyinstaller默认会从执行目录里搜索upx执行文件,如果找到upx,会对生成的可执行文件进行压缩。现在我们重新执行pyinstaller打包命令,如果像下图这样就说明使用upx配置成功第二步:打包后,将源码打包成一个完整的可执行文件,有2中方式:pyinstallerxxx.py,生成执行文件,附带一个文件夹pyinstaller-Fxxx.py,合成一个,单个文件在其他机器上可运行pyinstaller只是将代码打包成本平台的执行文件,不会交叉编译成其他平台程序的。有的blog写的ubuntu打包成exe,但这就是一个说法,不是真的打包成windows平台的.exe文件。pyinstaller-Fmain.py--hidden-importPySide6.QtSvg--pathsD:\ProgramData\Anaconda3\envs\pyside6\Lib\site-packages\shiboken6\shiboken6.abi3.dll1也可以直接使用spec文件打包,在终端运行pyinstallerrun.spec#run.spec#-*-mode:python;coding:utf-8-*-a=Analysis(['run.py'],pathex=['shiboken6.abi3.dll'],binaries=[],datas=[('files/*','files/')],#将同级文件夹下的所有文件打包到可执行文件的根目录hiddenimports=['PySide6.QtSvg'],hookspath=[],hooksconfig={},runtime_hooks=[],excludes=['ultralytics'],noarchive=False,optimize=0,)pyz=PYZ(a.pure)exe=EXE(pyz,a.scripts,[],exclude_binaries=True,name='run',debug=False,bootloader_ignore_signals=False,strip=False,upx=True,console=True,disable_windowed_traceback=False,argv_emulation=False,target_arch=None,codesign_identity=None,entitlements_file=None,icon=['logo.ico'],)coll=COLLECT(exe,a.binaries,a.datas,strip=False,upx=True,upx_exclude=[],name='run',)123456789101112131415161718192021222324252627282930313233343536373839404142434445执行完成后在目录下会出现以下3种文件:build文件夹是存放打包时临时文件用的(没用)dist文件夹存放了打包好的应用(其中的exe文件就是可执行程序)里面的_internal是包含的所有依赖,如果出现依赖未找到,就去指定的环境下拷贝进来。xxxxx.spec内容是PyInstaller根据我们的命令行生成的打包参数最后记得把一些资源(如json文件、图片、一些项目所需的文件夹、图标、xml等),复制到打包好的exe文件目录下,或复制到之前在代码中编写的相对目录位置下。打包参数说明:-F,--onefile:打包一个单个文件,产生一个文件用于部署。-D,--onedir:打包多个文件,产生一个目录用于部署。-K,--tk:在部署时包含TCL/TK。-a,--ascii:不包含编码,在支持Unicode的python版本上默认包含所有的编码。-d,--debug:产生debug版本的可执行文件。-w,--windowed,--noconsole:使用Windows子系统执行,当程序启动的时候不会打开命令行(只对Windows有效)。-c,--nowindowed,--console:使用控制台子系统执行(默认),当程序启动的时候会打开命令行(只对Windows有效)。-i,--icon=:将file.ico添加为可执行文件的资源,改变程序的图标(只对Windows系统有效)123456789101112131415方式三:auto-py-to-exe安装环境:进入到虚拟环境pipinstallgevent-websocketpipinstallsetuptools==57.5.0pipinstallgreenlet==1.1.3gevent==22.8.0pipinstallpyinstaller-ihttps://pypi.tuna.tsinghua.edu.cn/simple在自己的文件夹里,下载auto-py-to-exegitclonehttps://github.com/brentvollebregt/auto-py-to-exe.gitpythonsetup.pyinstall123456789安装完成后,在指定虚拟环境中输入auto-py-to-exe,即可打开。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2025-1-11 06:13 , Processed in 0.445118 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表