Python实用记录(十五):PyQt/PySide6打包成exe,精简版(nuitka/pyinstaller/auto

您所在的位置:网站首页 把py文件打包成EXE文件 Python实用记录(十五):PyQt/PySide6打包成exe,精简版(nuitka/pyinstaller/auto

Python实用记录(十五):PyQt/PySide6打包成exe,精简版(nuitka/pyinstaller/auto

2024-07-17 13:19| 来源: 网络整理| 查看: 265

方式一:nuitka

打包的话,用nuitka更适合,对PySide支持更好。压缩后仅15MB左右。

pip install nuitka zstandard # PyQt 26MB ==> 14.9MB python -m nuitka --onefile --windows-disable-console --enable-plugin=pyqt6 .py # PySide 34MB ==> 16.8MB python -m nuitka --onefile --windows-disable-console --enable-plugin=pyside6 --follow-import-to=need --output-dir=output .py pip install pyinstaller pyinstaller -D -i "5.ico" base_camera.py 方式二:pyinstaller

第一步: 安装环境:

pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple

打包前:可使用upx减少打包体积 我们需要先下载UPX执行文件,可以自己去搜或者在 官网 里面下载自己想要的版本,下载下来的是一个压缩包,我们只需要解压后把里面的upx.exe文件复制到pyinstaller.exe同个文件夹(应该是Scripts文件夹)内即可。

pyinstaller默认会从执行目录里搜索upx执行文件,如果找到upx,会对生成的可执行文件进行压缩。现在我们重新执行pyinstaller打包命令,如果像下图这样就说明使用upx配置成功 在这里插入图片描述 第二步:

打包后,将源码打包成一个完整的可执行文件,有2中方式:

pyinstaller xxx.py,生成执行文件,附带一个文件夹pyinstaller -F xxx.py, 合成一个,单个文件在其他机器上可运行

pyinstaller只是将代码打包成本平台的执行文件,不会交叉编译成其他平台程序的。有的blog写的ubuntu打包成exe,但这就是一个说法,不是真的打包成windows平台的.exe文件。

pyinstaller -F main.py --hidden-import PySide6.QtSvg --paths D:\ProgramData\Anaconda3\envs\pyside6\Lib\site-packages\shiboken6\shiboken6.abi3.dll

也可以直接使用spec文件打包,在终端运行pyinstaller run.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', )

在这里插入图片描述

执行完成后在目录下会出现以下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 系统有效) 方式三:auto-py-to-exe

安装环境:

进入到虚拟环境 pip install gevent-websocket pip install setuptools==57.5.0 pip install greenlet==1.1.3 gevent==22.8.0 pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple 在自己的文件夹里,下载auto-py-to-exe git clone https://github.com/brentvollebregt/auto-py-to-exe.git python setup.py install

安装完成后,在指定虚拟环境中输入auto-py-to-exe,即可打开。 在这里插入图片描述 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3