精选文章 Pyinstaller各参数的意义

Pyinstaller各参数的意义

作者:进击的程小白 时间: 2020-08-05 03:48:20
进击的程小白 2020-08-05 03:48:20

说明

以下介绍假设用户脚本为main.py,生成结果为main.exe。
有些参数实在很少用到,只列出简单介绍,具体请参阅原文。
原文(英文): https://pyinstaller.readthedocs.io/en/v3.3.1/usage.html

通用参数

参数名描述说明
-h显示帮助
-v显示版本号
–distpath生成文件放在哪里默认:当前目录的dist文件夹内
–workpath生成过程中的中间文件放在哪里默认:当前目录的build文件夹内
-y如果dist文件夹内已经存在生成文件,则不询问用户,直接覆盖默认:询问是否覆盖
–upx-dir UPX_DIR指定upx工具的目录默认:execution path
-a不包含unicode支持默认:尽可能支持unicode
–clean在本次编译开始时,清空上一次编译生成的各种文件默认:不清除
–log-level LEVEL控制编译时pyi打印的信息一共有6个等级,由低到高分别为TRACE DEBUG INFO(默认) WARN ERROR CRITICAL。也就是默认清空下,不打印TRACE和DEBUG信息

与生成结果有关的参数

参数名描述说明
-D生成one-folder的程序(默认)生成结果是一个目录,各种第三方依赖、资源和exe同时存储在该目录
-F生成one-file的程序生成结果是一个exe文件,所有的第三方依赖、资源和代码均被打包进该exe内
–specpath指定.spec文件的存储路径默认:当前目录
-n生成的.exe文件和.spec的文件名默认:用户脚本的名称,即main.py和main.spec

指定打包哪些资源、代码

参数名描述说明
–add-data打包额外资源用法:pyinstaller main.py --add-data=src;dest。windows以;分割,linux以:分割
–add-binary打包额外的代码用法:同–add-data。与–add-data不同的是,用binary添加的文件,pyi会分析它引用的文件并把它们一同添加进来
-p指定额外的import路径,类似于使用PYTHONPATH参见PYTHONPATH
–hidden-import打包额外py库pyi在分析过程中,有些import没有正确分析出来,运行时会报import error,这时可以使用该参数
–additional-hooks-dir指定用户的hook目录hook用法参见其他,系统hook在PyInstaller\hooks目录下
–runtime-hook指定用户runtime-hook如果设置了此参数,则runtime-hook会在运行main.py之前被运行
–exclude-module需要排除的modulepyi会分析出很多相互关联的库,但是某些库对用户来说是没用的,可以用这个参数排除这些库,有助于减少生成文件的大小
–keypyi会存储字节码,指定加密字节码的key16位的字符串

生成参数

参数名描述说明
-d执行生成的main.exe时,会输出pyi的一些log,有助于查错默认:不输出pyi的log
-s优化符号表原文明确表示不建议在windows上使用
–noupx强制不使用upx默认:尽可能使用。

其他

参数名描述说明
–runtime-tmpdir指定运行时的临时目录默认:使用系统临时目录

Windows和Mac特有的参数

参数名描述说明
-c显示命令行窗口与-w相反,默认含有此参数
-w不显示命令行窗口编写GUI程序时使用此参数有用。
-i为main.exe指定图标pyinstaller -i beauty.ico main.py

Windows特有的参数

参数名描述说明
–version-file添加版本信息文件pyinstaller --version-file ver.txt
-m, --manifest添加manifest文件pyinstaller -m main.manifest
-r RESOURCE请参考原文 
–uac-admin请参考原文 
–uac-uiaccess请参考原文
勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇:2020-08-05

下一篇:Invocation failed Server returned invalid Response. git提交拉取报异常

您可能感兴趣

  • 多线程基础例题

    通常使用锁方法(Synchronized修饰方法)、锁代码块(Synchronized块)、信号量(Semaphore)、Lock锁 1、要求线程a执行完才开始线程b, 线程b执行完才开始主线程 思路:由题意可知会有两条副线程a和b,编写好a,b的内容后,在主线程中启动两个线程。 关键点在于,一旦开启线程,线程的执行完全是由各自抢占cpu的能力而定,是人为不可控的,为了实现题目中的要求,我们...

  • 不停机还能替换代码?6年的 Java程序员表示不可思议

    相信很多人都有这样一种感受,自己写的代码在开发、测试环境跑的稳得一笔,可一到线上就抽风,不是缺这个就是少那个反正就是一顿报错,而线上调试代码又很麻烦,让人头疼得很。不过, 阿里巴巴出了一款名叫Arthas的工具,可以在线分析诊断Java代码,让人眼前一亮。 ❞ Arthas 是什么? Arthas(阿尔萨斯) 是阿里开源的一个Java在线分析诊断工具。 Arthas 能解决啥问题? 在日常开...

  • IntellIJ IDEA2020新功能

    一、java 1、Java 14支持:记录和模式匹配 IntelliJ IDEA 2020.1添加了对Java 14及其新功能的支持。IDE不仅添加了对Records的完整代码洞察支持,而且还使您能够快速创建新记录并生成其构造函数和组件,并警告存在的错误。您还将发现对instanceof运算符的模式匹配的支持,包括新的检查和快速修复,该快速修复通过用新的简洁模式变量替换它们来快速简化冗长的i...

  • Java异常面试题(2020最新版)

    文章目录 Java异常架构与异常关键字 Java异常简介 Java异常架构 1. Throwable 2. Error(错误) 3. Exception(异常) 运行时异常 编译时异常 4. 受检异常与非受检异常 受检异常 非受检异常 Java异常关键字 Java异常处理 声明异常 抛出异常 捕获异常 如何选择异常类型 常见异常处理方式 直接抛出异常 封装异常再抛出 捕获异常 自定义异常 t...

  • 大型架构及配置技术ansible(一)之ansible基础,ad-hoc,批量配置管理,ansible七种武器,JSON简介,YAML简介

    一、ansible基础 6台虚拟机(2cpu,1.5G以上内存,10G以上硬盘,1块网卡) 主机名 IP地址 角色 ansible40 192.168.4.40/24 管理主机 web41 192.168.4.41/24 托管主机 web42 192.168.4.42/24 托管主机 db43 192.168.4.43/24 托管主机 db44 192.168.4.44/24 托管主机 ca...

  • Caffe源码精读 - 8 - Caffe Layers之yolov3_layer(yolov3 loss计算层)

    Caffe源码精读 - 8 - Caffe Layers之yolov3_layer(yolov3 loss计算层) 1. 概述 yolov3_layer是yolov3模型,处理feature map,计算loss的层。主要就是计算定位损失,bndbox的置信损失和类别置信损失。 2. dx_box_iou(vector pred, vector truth, IOU_LOSS iou_los...

  • 中国第五个直辖市,我来说两句

    中国第五个直辖市,我来说两句 最近网上有很多网民在讨论新的直辖市的问题,很多人鼓吹说深圳很有可能成为第五个直辖市,有人说武汉应该成为直辖市。去年回河南长葛岳父家探亲,发现本地人在说郑州可能成为直辖市。实际上,谁是最新的直辖市,是一个老生常谈的问题。不仅仅大城市,很多二三线城市的市民,都在网上表达希望自己所在的城市成为新的直辖市的愿望和幻想。 众所周知,想成为一个直辖市是有设立条件的。首先它要...

  • java基础学习笔记(七)-反射--注解

    反射机制介绍 _Class 对象获取 反射机制是 Java 的动态性之一 动态语言 : 在程序运行时,可以改变程序的结构或变量的类型。 典型的动态语言 ”Python 、 ruby 、 JavaScripC,C++, Java 不是动态语言,但具有一定的动态性,可以称为” 准动态语言 ”, 具备类似动态语言的特性。传一块代码来动态的执行,动态的处理,Java 也能做,可以利用反射来实现类似的...

华为云40多款云服务产品0元试用活动

免费套餐,马上领取!
CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。