|
文章目录前言如何将Python脚本打包成可执行文件(exe)1.测试python脚本2.安装PyInstaller3.创建PyInstallerspec文件4.生成可执行文件4.1去掉黑框前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^_^。 而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!如何将Python脚本打包成可执行文件(exe)1.测试python脚本python-登录界面-demo2.安装PyInstallerpipinstallpyinstaller3.创建PyInstallerspec文件pyi-makespec--onefileyour_script.py生成15-GUI-登录界面.spec文件#-*-mode:python;coding:utf-8-*-a=Analysis(['15-GUI-登录界面.py'],pathex=[],binaries=[],datas=[],hiddenimports=[],hookspath=[],hooksconfig={},runtime_hooks=[],excludes=[],noarchive=False,optimize=0,)pyz=PYZ(a.pure)exe=EXE(pyz,a.scripts,a.binaries,a.datas,[],name='15-GUI-登录界面',debug=False,bootloader_ignore_signals=False,strip=False,upx=True,upx_exclude=[],runtime_tmpdir=None,console=True,disable_windowed_traceback=False,argv_emulation=False,target_arch=None,codesign_identity=None,entitlements_file=None,)123456789101112131415161718192021222324252627282930313233343536373839解析:Analysis部分:a=Analysis(['15-GUI-登录界面.py'],#需要打包的主脚本pathex=[],#包含脚本的搜索路径,通常是当前目录binaries=[],#需要打包的二进制文件列表datas=[],#需要打包的数据文件列表hiddenimports=[],#需要隐藏导入的模块列表hookspath=[],#Hook文件的搜索路径hooksconfig={},#Hook文件的配置runtime_hooks=[],#运行时钩子excludes=[],#需要排除的模块列表noarchive=False,#如果为True,不打包成一个单独的文件optimize=0,#优化级别(0,1,2))1234567891011121314参数解释:[‘15-GUI-登录界面.py’]:主脚本文件。pathex:搜索路径,PyInstaller在这些路径中查找导入的模块。可以指定多个路径。binaries:额外的二进制文件,通常是DLL或SO文件,需要包含在打包中。datas:数据文件列表,如图像、配置文件等,需要包含在打包中。hiddenimports:PyInstaller未能自动检测到的模块列表。hookspath:指定钩子文件的路径,钩子文件是用来处理模块的特殊导入情况的。hooksconfig:钩子配置文件。runtime_hooks:运行时钩子,程序启动时执行的钩子。excludes:需要排除在打包之外的模块列表。noarchive:如果为True,则不将所有内容打包到一个单独的.pyz文件中。optimize:优化级别,0(无优化)、1(基本优化)、2(更高优化)。PYZ部分:pyz=PYZ(a.pure)1这部分创建一个.pyz文件(包含所有纯Python模块)。EXE部分:exe=EXE(pyz,#PYZ对象a.scripts,#分析得到的脚本文件a.binaries,#分析得到的二进制文件a.datas,#分析得到的数据文件[],#其他需要包含的文件列表name='15-GUI-登录界面',#生成的可执行文件名称debug=False,#如果为True,生成的可执行文件将在调试模式下运行bootloader_ignore_signals=False,#启动程序忽略信号strip=False,#如果为True,从生成的文件中去掉符号表和调试信息upx=True,#如果为True,使用UPX压缩可执行文件upx_exclude=[],#不使用UPX压缩的文件列表runtime_tmpdir=None,#在运行时解压临时文件的目录console=True,#如果为True,生成的可执行文件将在控制台模式下运行disable_windowed_traceback=False,#禁用窗口化的回溯argv_emulation=False,#模拟命令行参数传递(仅MacOS有效)target_arch=None,#目标架构codesign_identity=None,#代码签名身份(仅MacOS有效)entitlements_file=None,#权限文件(仅MacOS有效))123456789101112131415161718192021参数解释:pyz:前面创建的PYZ对象。a.scripts:分析对象中的脚本文件。a.binaries:分析对象中的二进制文件。a.datas:分析对象中的数据文件。name:生成的可执行文件名称。debug:如果为True,生成的可执行文件将在调试模式下运行。bootloader_ignore_signals:如果为True,启动程序将忽略信号。strip:如果为True,从生成的文件中去掉符号表和调试信息。upx:如果为True,使用UPX压缩可执行文件。upx_exclude:不使用UPX压缩的文件列表。runtime_tmpdir:在运行时解压临时文件的目录。console:如果为True,生成的可执行文件将在控制台模式下运行。disable_windowed_traceback:禁用窗口化的回溯。argv_emulation:模拟命令行参数传递(仅MacOS有效)。target_arch:目标架构。codesign_identity:代码签名身份(仅MacOS有效)。entitlements_file:权限文件(仅MacOS有效)。进一步定义:你可以根据需要进一步自定义spec文件。例如,如果你想添加数据文件,可以这样修改:a=Analysis(['15-GUI-登录界面.py'],pathex=[],binaries=[],datas=[('data/logConfig.ini','data'),#添加数据文件],hiddenimports=[],hookspath=[],hooksconfig={},runtime_hooks=[],excludes=[],noarchive=False,optimize=0,)123456789101112131415164.生成可执行文件pyinstalleryour_script.spec测试:双击:测试成功。4.1去掉黑框需要将console参数设置为False#-*-mode:python;coding:utf-8-*-a=Analysis(['15-GUI-登录界面.py'],pathex=[],binaries=[],datas=[],hiddenimports=[],hookspath=[],hooksconfig={},runtime_hooks=[],excludes=[],noarchive=False,optimize=0,)pyz=PYZ(a.pure)exe=EXE(pyz,a.scripts,a.binaries,a.datas,[],name='15-GUI-登录界面',debug=False,bootloader_ignore_signals=False,strip=False,upx=True,upx_exclude=[],runtime_tmpdir=None,console=False,disable_windowed_traceback=False,argv_emulation=False,target_arch=None,codesign_identity=None,entitlements_file=None,)123456789101112131415161718192021222324252627282930313233343536373839重新生成可执行文件
|
|