当前位置:   article > 正文

【python】pyinstaller使用 --add-data --add-binary打包额外资源_pyinstaller --add-binary

pyinstaller --add-binary

为什么要使用 --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

例如:

  1. pyinstaller x.py  -n Demo2.0.3 --key !@)v -i "res\logo.ico"  
  2. --add-data=".\*.txt;." --add-data=".\*.json;." --add-data="res\*.*;.\res" 
  3. --add-data="dist\models\*.*;.\models"

.spec文件里如何使用 --add-data

  1. # -*- mode: python ; coding: utf-8 -*-
  2.  
  3. block_cipher = pyi_crypto.PyiBlockCipher(key='!@)v')
  4.  
  5.  
  6. a = Analysis(['x.py'],
  7.              pathex=['D:\\Miniconda3\\envs\\cuda11\\Lib\\site-packages', 'D:\\project\\demo'],
  8.              binaries=[],
  9.              datas=[('.\\*.json', '.'), ('res\\*.*', '.\\res'), ('dist\\models\\*.*', '.\\models')],
  10.              hiddenimports=[],
  11.              hookspath=[],
  12.              runtime_hooks=[],
  13.              excludes=[],
  14.              win_no_prefer_redirects=False,
  15.              win_private_assemblies=False,
  16.              cipher=block_cipher,
  17.              noarchive=False)
  18. pyz = PYZ(a.pure, a.zipped_data,
  19.              cipher=block_cipher)
  20. exe = EXE(pyz,
  21.           a.scripts,
  22.           [],
  23.           exclude_binaries=True,
  24.           name='Demo2.0.3',
  25.           debug=False,
  26.           bootloader_ignore_signals=False,
  27.           strip=False,
  28.           upx=True,
  29.           console=False , icon='res\\logo.ico')
  30. coll = COLLECT(exe,
  31.                a.binaries,
  32.                a.zipfiles,
  33.                a.datas,
  34.                strip=False,
  35.                upx=True,
  36.                upx_exclude=[],
  37.                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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/天景科技苑/article/detail/867552
推荐阅读
相关标签
  

闽ICP备14008679号