赞
踩
为什么要使用 --add-data
程序里文件格式有很多种:
源代码 .py
图片格式 .png .jpg .ico 等
配置文件 .ini .json .xml等
其他可执行文件 .bin .exe等
模型文件 .pth 等
说明文档 .txt .md等
注意:除了.py之外,其他格式不会编译。
除了.py之外,其他格式若要打包进去,需要使用 --add-data 处理,或者手动拷贝(嫌麻烦,你每次都能记住?)
如何使用 --add-data?
用法:pyinstaller x.py --add-data="源地址;目标地址"。 windows以;分割,linux以:分割
例如:将 config 目录的所有文件打包到目标的 config 文件夹(不存在会自动创建)下
pyinstaller x.py --add-data ".\\config\\*;.\\config"
可使用多次 --add-data
例如:
pyinstaller x.py -n Demo2.0.3 --key !@)v -i "res\logo.ico" --add-data=".\*.txt;." --add-data=".\*.json;." --add-data="res\*.*;.\res" --add-data="dist\models\*.*;.\models"
.spec文件里如何使用 --add-data
# -*- mode: python ; coding: utf-8 -*- block_cipher = pyi_crypto.PyiBlockCipher(key='!@)v') a = Analysis(['x.py'], pathex=['D:\\Miniconda3\\envs\\cuda11\\Lib\\site-packages', 'D:\\project\\demo'], binaries=[], datas=[('.\\*.json', '.'), ('res\\*.*', '.\\res'), ('dist\\models\\*.*', '.\\models')], hiddenimports=[], hookspath=[], runtime_hooks=[], excludes=[], win_no_prefer_redirects=False, win_private_assemblies=False, cipher=block_cipher, noarchive=False) pyz = PYZ(a.pure, a.zipped_data, cipher=block_cipher) exe = EXE(pyz, a.scripts, [], exclude_binaries=True, name='Demo2.0.3', debug=False, bootloader_ignore_signals=False, strip=False, upx=True, console=False , icon='res\\logo.ico') coll = COLLECT(exe, a.binaries, a.zipfiles, a.datas, strip=False, upx=True, upx_exclude=[], name='Demo2.0.3')Analysis里的datas就是使用 --add-data对应的地方!
一个[]里,有多个(),每个()以逗号隔开,左边是程序路径,右边是放入打包里的路径!
对于深层路径要写完整路径!
binaries=[('onnxruntime\\capi\\*.*','\\onnxruntime\\capi')],
--add-binary同--add-data类似
————————————————
Thanks to:https://blog.csdn.net/u012219045/article/details/114841287
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。