pyinstaller spec 文件浅谈

编程入门 行业动态 更新时间:2024-10-23 03:24:33

pyinstaller spec 文件<a href=https://www.elefans.com/category/jswz/34/1769825.html style=浅谈"/>

pyinstaller spec 文件浅谈

python程序打包系列

接着上篇的pyinstaller的使用,在使用pyinstaller的过程中会生成一个spec文件,现在我们来聊聊这个文件。

文章目录

  • python程序打包系列


spec 官方文档介绍

PyInstaller要做的第一件事是建立一个spec(规范)文件 myscript.spec。该文件存储在–specpath=目录中,默认情况下为当前目录。

规范文件告诉PyInstaller如何处理脚本。它对脚本名称和您提供给pyinstaller命令的大多数选项进行编码。spec文件实际上是可执行的Python代码。 PyInstaller通过执行spec文件的内容来构建应用程序。

对于PyInstaller的许多用途,您无需检查或修改规范文件。通常只需给命令提供所有必需的信息(例如隐藏的导入)作为选项pyinstaller并让其运行。

在四种情况下,修改规格文件很有用:

  • 当您要将数据文件与应用程序捆绑在一起时。
  • 当您想要包括运行时库(.dll或.so文件)时, PyInstaller不会从任何其他来源得知。
  • 当您要将Python运行时选项添加到可执行文件时。
  • 当您要创建具有合并的通用模块的多程序包时。

您可以使用以下命令创建规格文件:

pyi-makespec 选项 [其他脚本…]name.py

这些选项与上面为pyinstaller命令记录的选项相同。此命令创建文件,但不会继续生成可执行文件。name.spec

创建规范文件并根据需要对其进行修改后,可以通过将规范文件传递给pyinstaller命令来构建应用程序:

pyinstaller 选项 name.spec

创建规格文件时,大多数命令选项都编码在规格文件中。从规格文件构建时,这些选项无法更改。如果在命令行中给出它们,它们将被忽略,并由spec文件中的选项代替。

从规范文件构建时,只有以下命令行选项有效:

  • –upx-dir=
  • –distpath=
  • –workpath=
  • –noconfirm
  • –ascii
  • –clean
  • –key=

我在打包的过程中用到的参数
以上参数:
–upx-dir=:要用到一个压缩程序UPX,用于压缩文件,需要单独下载。
–noconfirm:表示不再询问,会自动覆盖上次打包的内容
–key= :加密,需要安装tinyaes第三方库,最多16位字符

默认打包方式生成的spec文件内容大致如下:

# -*- mode: python ; coding: utf-8 -*-block_cipher = None # 此处在使用--key= 会有变化a = Analysis(['ai\\main.py'],pathex=['C:\\Users\\Admin\\Downloads\\marsai-master'],binaries=[],datas=[],# 此处可以添加静态资源,例如你有个图片文件夹imgs,可以这样写[('imgs','imgs'),('test.txt','.')],打包以后会有一个一样的文件夹,点表示当前文件夹。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='main', # 生成的exe的名字debug=False,bootloader_ignore_signals=False,strip=False,upx=True, # 打包的时候进行压缩,False表示不压缩console=True # 是否显示黑窗口,刚开始打包的时候一般都会有问题,建议设为True,解决所有问题后可以设置为False)
coll = COLLECT(exe,a.binaries,a.zipfiles,a.datas,strip=False,upx=True,upx_exclude=[],name='main' # 文件夹的名字)

最后,有任何关于打包的问题可以评论留言,大家一起交流学习。

更多推荐

pyinstaller spec 文件浅谈

本文发布于:2024-02-27 04:21:03,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1705158.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:浅谈   文件   pyinstaller   spec

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!