pyinstaller打包
使用pyqt5开发软件,当项目越来越大,引用的资源越来越多时,那么使用pyinstaller进行打包,如果不利用规范文件,是很难满足打包需求的。
规范文件,其实你在使用, 打包时,也是会自动生成的,叫main.spec。
不过,如果你想把自己的资源文件一起打进包去,则需要对规范文件进行一些编辑,然后使用 即可打包完成。
本文主要就是列举下pyinstaller利用规范文件进行打包的几个使用模板,以供大家参考使用。至于内涵原理,本人时间有限,也没深入研究,大家根据自己情况去探索吧。
【如下代码,完全复制,直接运行,即可使用】【注1:模板中的相关路径和文件名称,当然需要根据自己的情况对应修改了】【注2:如果你的规范文件叫main.spec的话,打包命令便是, 】【注3:当项目越来越大时,免安装绿色文件夹在软件启动速度上,比单个可执行文件,要快! * *】
模式一:使用规范文件,打成【单个可执行文件】
<前> <代码> # - * -模式:python - *block_cipher=没有 ([=分析 ),
,,,,,,pathex=[ ),
,,,,,,二进制文件=[],
,,,,,,数据=[],
,,,,,,hiddenimports=[],
,,,,,,hookspath=[],
,,,,,,runtime_hooks=[],
,,,,,,不包括=[],
,,,,,,win_no_prefer_redirects=False,
,,,,,,win_private_assemblies=False,
,,,,,,密码=block_cipher,
,,,,,,noarchive=False)
# # # # # # # ! ! !注意点 :加载自己的资源文件# # # # # # # # # # # # # # # # # # # # #
def extra_datas (mydir):
,,def rec_glob (p,文件):
,,,, 操作系统
,,,, 一团
,,,, d glob.glob (p):
,,,,,, os.path.isfile (d):
,,,,,,,文件。 (d)
,,,,,,rec_glob ( % d文件)
,,文件=[]
,,rec_glob ( % mydir,文件)
,,extra_datas=[]
,, f文件:
,,,extra_datas。 ((f, f, ))
,, extra_datas
# 的 dir
。数据+=extra_datas ( ),,# # #这里是自己的资源文件夹
。数据+=extra_datas ( ),# # #这里是自己的资源文件夹
。数据+=extra_datas ( )# # #这里是自己的资源文件夹
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
pyz=pyz (a。纯、a.zipped_data
,,,,,,密码=block_cipher)
exe=exe (pyz,
,,,,a.scripts,
,,,,一个。二进制文件,,,,,,,,,,,,,,# # # ! ! !注意点
,,,,一个。zipfiles,,,,,,,,,,,,,,# # # ! ! !注意点
,,,,一个。资料,,,,,,,,,,,,,,,# # # ! ! !注意点
,,,,[],
,,,,exclude_binaries=False,大敌;# # # ! ! !注意点 :这里是错误的
,,,,,name=,
,,,,debug=False,
,,,,bootloader_ignore_signals=False,
,,,,,脱衣舞=False,
,,,,upx=True,
,,,,=False,控制台,
,,,,,图标=)
代码>
模式二:使用规范文件,打成【免安装绿色文件夹】
<前> <代码> # - * -模式:python - *block_cipher=没有 ([=分析 ),
,,,,,,pathex=[ ),
,,,,,,二进制文件=[],
,,,,,,数据=[],
,,,,,,hiddenimports=[],
,,,,,,hookspath=[],
,,,,,,runtime_hooks=[],
,,,,,,不包括=[],
,,,,,,win_no_prefer_redirects=False,
,,,,,,win_private_assemblies=False,
,,,,,,密码=block_cipher,
,,,,,,noarchive=False)
# # # # # # # ! ! !注意点 :加载自己的资源文件# # # # # # # # # # # # # # # # # # # # #
def extra_datas (mydir):
,,def rec_glob (p,文件):
,,,, 操作系统
,,,, 一团
,,,, d glob.glob (p):
,,,,,, os.path.isfile (d):
,,,,,,,文件。 (d)
,,,,,,rec_glob ( % d文件)
,,文件=[]
,,rec_glob ( % mydir,文件)
,,extra_datas=[]
,, f文件:
,,,extra_datas。 ((f, f, ))
,, extra_datas