[Python进阶] 程序打包之Pyinstaller参数介绍

2023-09-22 11:06:27

5.4 Pyinstaller参数介绍

5.4.1 选项参数

参数名 说明
-h、–help 查看Pyinstaller所有命令的用法和帮助
-v、–version 查看当前Pyinstaller版本
–distpath DIR 设置dist位置,默认当前目录
–workpath WORKPATH 设置build位置,默认当前目录
-y、–noconfirm 当存在dist时,不询问,直接覆盖
–upx-dir UPX_DIR 指定upx工具的目录,默认执行路径
-a、–ascii 不包含unicode支持
–clean 打包前先清理缓存和临时文件,重新打包建议加上该命令
–log-level LEVEL 限制打包时在控制台中输出的日志等级。一共有6个等级,由低到高分别为TRACE、DEBUG、INFO(默认)、WARN、ERROR、CRITICAL

5.4.2 生成有关参数

参数名 说明
-D 单文件夹模式,即生成结果是一个目录,各种第三方依赖、资源和可执行程序同时存储在该目录。默认;
-F 单文件模式,即生成结果是一个可执行文件,所有的第三方依赖、资源和代码均被打包进该可执行文件内
–specpath DIR 指定spec文件的生成路径,默认当前目录。
-n、–name NAME 修改生成的可执行文件和spec的文件名。

5.4.3 资源有关参数

参数名 说明
–add-data SRC 要添加到可执行文件中的其他非二进制文件或文件夹。可多次使用。
–add-binary SRC 要添加到可执行文件中的其他二进制文件。可多次使用
-p、–paths DIR 用于搜索导入的路径(如使用PYTHONPATH)。
–hidden-import MODULENAME 显示打包额外的py库
–collect-submodules MODULENAME 从指定的包或模块收集所有子模块。
–collect-data MODULENAME 从指定的包或模块收集所有数据。
–collect-binaries MODULENAME 从指定的包或模块收集所有二进制文件。
–collect-all MODULENAME 收集指定包或模块中的所有子模块、数据文件和二进制文件
–copy-metadata PACKAGENAME 复制指定包的元数据。
–recursive-copy-metadata PACKAGENAME 复制指定包及其所有依赖项的元数据。
–additional-hooks-dir HOOKSPATH 指定用户的hook目录。系统hook在Pyinstaller\hooks目录下
–runtime-hook RUNTIME_HOOKS 如果设置了此参数,则runtime-hook会在运行main.py之前被运行
–exclude-module EXCLUDES 需要排除的module,有助于减少生成文件的大小
–key KEY 用于加密Python字节码的密钥。
–splash IMAGE_FILE (实验性的)添加一个带有图像IMAGE_FILE的启动屏幕到应用程序。可以在拆包时显示进度更新。

5.4.4 如何生成有关参数

参数名 说明
-d 打包时,会输出一些log,有助于查错
–python-option PYTHON_OPTION 指定一个命令行选项,在运行时传递给Python解释器。
-s、–strip 优化符号表,不建议在windows上使用
–noupx 不要使用UPX,即使它可用
–upx-exclude FILE 使用upx时防止二进制文件被压缩。

5.4.5 Windows和Mac特有的参数

参数名 说明
-c、–console、–nowindowed 显示命令行窗口
-w、–windowed、–noconsole 不显示命令行窗口
-i、–icon ICO 为最后的可执行程序指定图标
–disable-windowed-traceback 在window (noconsole)模式下禁用未处理异常的回溯转储

5.4.6 Windows特有的参数

参数名 说明
–version-file FILE 添加版本信息文件
-m、–manifest FILE 添加manifest文件
–no-embed-manifest 生成外部.exe文件。
-r、–resource RESOURCE 向Windows可执行文件添加或更新资源。
–uac-admin 使用此选项将创建一个清单,该清单将在应用程序启动时请求提升
–uac-uiaccess 使用此选项允许提升的应用程序与远程桌面一起工作。

5.4.7 常用参数

-h、–help 查看Pyinstaller所有命令的用法和帮助
-y、–noconfirm 当存在dist时,不询问,直接覆盖
–clean 打包前先清理缓存和临时文件,重新打包建议加上该命令
–log-level LEVEL 限制打包时在控制台中输出的日志等级。一共有6个等级,由低到高分别为TRACE、DEBUG、INFO(默认)、WARN、ERROR、CRITICAL
-D 单文件夹模式,即生成结果是一个目录,各种第三方依赖、资源和可执行程序同时存储在该目录。默认;
-F 单文件模式,即生成结果是一个可执行文件,所有的第三方依赖、资源和代码均被打包进该可执行文件内
–hidden-import MODULENAME 显示打包额外的py库
-c、–console、–nowindowed 显示命令行窗口
-w、–windowed、–noconsole 不显示命令行窗口
-i、–icon ICO 为最后的可执行程序指定图标

更多推荐

【kafka实战】03 SpringBoot使用kafka生产者和消费者示例

本节主要介绍用SpringBoot进行开发时,使用kafka进行生产和消费一、引入依赖<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></de

【Java 基础篇】Java网络编程实战:P2P文件共享详解

Java网络编程是现代软件开发中不可或缺的一部分,因为它允许不同计算机之间的数据传输和通信。在本篇博客中,我们将深入探讨Java中的P2P文件共享,包括什么是P2P文件共享、如何实现它以及一些相关的重要概念。什么是P2P文件共享?P2P(Peer-to-Peer)文件共享是一种分布式计算模型,其中每个计算机或设备都可以

Java8实战-总结30

Java8实战-总结30并行数据处理与性能并行流正确使用并行流高效使用并行流小结并行数据处理与性能并行流正确使用并行流错用并行流而产生错误的首要原因,就是使用的算法改变了某些共享状态。下面是另一种实现对前n个自然数求和的方法,但这会改变一个共享累加器:publicstaticlongsideEffectSum(long

华为OD机试 - 特异性双端队列(Java 2023 B卷 100分)

目录专栏导读一、题目描述二、输入描述三、输出描述四、Java算法源码五、效果展示1、输入2、输出华为OD机试2023B卷题库疯狂收录中,刷题点这里专栏导读本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天C

单例模式有几种写法?

作者:猴子007选自:https://monkeysayhi.github.io“你知道茴香豆的‘茴’字有几种写法吗?”纠结单例模式有几种写法有用吗?有点用,面试中经常选择其中一种或几种写法作为话头,考查设计模式和codingstyle的同时,还很容易扩展到其他问题。这里讲解几种笔者常用的写法,但切忌生搬硬套,去记“茴

基于python的在线文档管理系统vue

本课题使用Python语言进行开发。代码层面的操作主要在PyCharm中进行,将系统所使用到的表以及数据存储到MySQL数据库中,方便对数据进行操作本课题基于WEB的开发平台1.运行环境:python3.7/python3.8。2.IDE环境:pycharm+mysql5.7;3.数据库工具:Navicat114.硬件

Xilinx ZYNQ 7000学习笔记五(Xilinx SDK 烧写镜像文件)

概述前面几篇讲了ZYNQ7000的启动过程,包括BootRom和FSBL的代码逻辑,其中关于FSBL代码对启动模式为JTAG被动启动没有进行分析,本篇将通过将JTAG的功能和通过XilinxSDK烧写镜像文件到flash来顺道把FSBL中的JTAG代码部分给讲解下。1.JTAGZYNQ7000系列SOC通过标准的JTA

【C++】string 之 assign、at、append函数的学习

前言在学习string类的过程中,我发现了assign这个函数,感觉很有用,就来记录一下assign函数原型:voidassign(size_typen,constT&x=T());voidassign(const_iteratorfirst,const_iteratorlast);assign函数有两种使用方式:第一

计算机视觉与深度学习-经典网络解析-AlexNet-[北邮鲁鹏]

这里写目录标题AlexNet参考文章AlexNet模型结构AlexNet共8层:AlexNet运作流程简单代码实现重要说明重要技巧主要贡献AlexNetAlexNet是一种卷积神经网络(ConvolutionalNeuralNetwork,CNN)的架构。它是由AlexKrizhevsky、IlyaSutskever和

操作系统学习笔记-精简复习版

文章目录操作系统概述1、操作系统2、主要功能3、用户态和内核态4、系统调用进程管理1、进程和线程2、引入线程的好处3、线程间同步4、进程控制块PCB5、进程的状态6、进程的通信方式7、进程的调度算法8、僵尸进程&孤儿进程9、死锁内存管理1、内存碎片2、内存管理3、虚拟内存4、分段机制5、分页机制6、段页式机制7、局部性

rust容器

标准库提供了常见的容器。包括向量(Vector)、映射(HashMap)、集合(HashSet)。一、向量Vector数组有一个缺点,就是它的长度在编译时就确定了,一旦确定就永不可更改。向量是一个长度可变的数组。向量的存储在堆上,因此长度可变。Rust在标准库中定义了结构体Vec用于表示向量。(一)定义向量一维向量1.

热文推荐