此文章为翻译
纯天然100%机翻
pyinstaller 因为安装已经有许多人做了 所以...
我从官方 Using PyInstaller — PyInstaller 4.5.1 documentation这里翻译了所有选项
有些只适用于一部分系统
pyinstaller命令的语法 pyinstaller
[选项] 脚本 [脚本…] | specfile
-h, --help
显示帮助信息并退出
-v --version
显示程序版本信息并退出
--distpath DIR
绑定的应用程序放在哪里(默认:/dist)
--workpath WORKPATH
存放所有临时工作文件log,pyz等的位置(默认:./build)
-y, --noconfirm
替换输出目录(默认:SPECPATH/dist/SPECNAME)
--upx-dir UPX_DIR
UPX实用程序的路径(默认:搜索执行路径)
-a, --ascii
不包括unicode编码支持(默认:包括如果可用)
--clean
在构建之前清理pyinstaller缓存并删除临时文件。
--log-level LEVEL
构建时控制台消息中的详细信息量。级别可能是TRACE、DEBUG、INFO、WARN、ERROR、CRITICAL(默认值:INFO)中的一个。
-D, --onedir
创建一个包含可执行文件的单文件夹包(默认)
-F, --onefile
创建一个单文件绑定的可执行文件。
--specpath DIR
存放生成的规范文件的文件夹(默认:当前目录)
-n NAME, --name NAME
要分配给绑定的应用程序和规范文件的名称(默认:第一个脚本的basename)
--add-data
要添加到可执行文件中的其他非二进制文件或文件夹。路径分隔符是平台特定的os。Pathsep(也就是;在Windows和:在大多数unix系统上)。这个选项可以多次使用。
--add-binary
要添加到可执行文件中的附加二进制文件。更多细节请参见 add-data选项。这个选项可以多次使用。
-p DIR, --paths DIR
搜索导入的路径(比如使用PYTHONPATH)。允许多条路径,路径之间用':'隔开,或者多次使用该选项。相当于在规范文件中提供pathex参数。
--hidden-import MODULENAME, --hiddenimport MODULENAME
命名一个在脚本代码中不可见的导入。这个选项可以多次使用。
--collect-submodules MODULENAME
从指定的包或模块中收集所有子模块。这个选项可以多次使用。
--collect-data MODULENAME, --collect-datas MODULENAME
从指定的包或模块收集所有数据。这个选项可以多次使用。
--collect-binaries MODULENAME
从指定的包或模块中收集所有二进制文件。这个选项可以多次使用。
--collect-all MODULENAME
从指定的包或模块中收集所有子模块、数据文件和二进制文件。这个选项可以多次使用。
--copy-metadata PACKAGENAME
复制指定包的元数据。这个选项可以多次使用。
--recursive-copy-metadata PACKAGENAME
复制指定包及其所有依赖项的元数据。这个选项可以多次使用
--additional-hooks-dir HOOKSPATH
用于搜索钩子的附加路径。这个选项可以多次使用。
--runtime-hook RUNTIME_HOOKS
自定义运行时钩子文件的路径。运行时钩子是与可执行文件绑定在一起的代码,在任何其他代码或模块之前执行,以设置运行时环境的特殊特性。这个选项可以多次使用。(具体钩子是什么我不知道,机翻的awa)
--exclude-module EXCLUDES
可选的模块或包(Python名,而不是路径名)将被忽略(就像没有找到它一样)。这个选项可以多次使用。
--key KEY
用于加密Python字节码的密钥。
--splash IMAGE_FILE
(实验性)在应用程序中添加带有图像图像文件的启动画面。启动画面可以在拆包时显示进度更新。
-d {all,imports,bootloader,noarchive}, --debug {all,imports,bootloader,noarchive}
为调试被冻结的应用程序提供帮助。可以多次提供此参数以选择以下几个选项。- all:下列所有三个选项。- imports:为底层Python解释器指定-v选项,使它在每次初始化模块时打印一条消息,显示模块从哪个位置(文件名或内置模块)加载。见https://docs.python.org/3/using/cmdline.html#id4. -bootloader:告诉引导加载程序在初始化和启动绑定的应用程序时发出进度消息。用于诊断缺少导入的问题。- noarchive:不是将所有冻结的Python源文件作为归档文件存储在生成的可执行文件中,而是将它们作为文件存储在生成的输出目录中。
-s, --strip
对可执行库和共享库应用符号表条带(Windows不推荐)
--noupx
不使用UPX,即使它是可用的(在Windows工作不同)
--upx-exclude FILE
当使用upx时,防止二进制文件被压缩。这通常用于upx在压缩过程中损坏某些二进制文件的情况。FILE是不带路径的二进制文件的文件名。这个选项可以多次使用。
-c, --console, --nowindowed
为标准i/o打开一个控制台窗口(默认)。在Windows中,如果第一个脚本是'.pyw'文件,这个选项将不起作用。
-w, --windowed, --noconsole
Windows和Mac OS X:不为标准i/o提供控制台窗口。在Mac OS X上,这也会触发构建一个OS X.app包。在Windows中,如果第一个脚本是".pyw "文件,则会设置此选项。这个选项在*NIX系统中被忽略。
-i
ico:将该图标应用到Windows可执行文件中。FILE.exe, ID从exe中提取带有ID的图标。文件。使用"NONE"不应用任何图标,从而使OS显示一些默认值(默认值:应用PylInstaller的图标)
(其实就是换图标awa)
--disable-windowed-traceback
在有窗口(noconsole)模式(仅Windows和macOS)中禁用未处理异常的追溯转储,并显示一条消息表明该功能已禁用。
--version-file FILE
添加一个版本资源从文件到exe
-m
添加manifest文件或XML到exe
-r RESOURCE, --resource RESOURCE
向Windows可执行文件添加或更新资源。资源是一到四个项目,FILEI.TYPEI.NAMEI.LANGUAGEIII。FILE可以是数据文件,也可以是exe/dll。对于数据文件,至少必须指定TYPE和NAME。LANGUAGE默认为O,也可以指定为通配符*,以更新给定TYPE和NAME的所有资源。对于exe/dll文件,如果在指定通配符时省略TYPE, NAME和LANGUAGE,则FILE中的所有资源将被添加/更新到最终的可执行文件*此选项可多次使用。
--uac-admin
使用此选项将创建一个Manifest,该Manifest将在应用程序重启时请求提升。
--uac-uiaccess
使用此选项允许提升应用程序与远程桌面一起工作。
--win-private-assemblies
任何绑定到应用程序中的共享程序集都将被更改为私有程序集。这意味着将始终使用这些程序集的确切版本,并且将忽略在用户机器上安装的任何较新的版本。
--win-no-prefer-redirects
在搜索要捆绑到应用程序中的共享程序集或私有程序集时,PyInstaller将不愿意遵循重定向到新版本的策略,并将尝试捆绑该程序集的确切版本。
--osx-bundle-identifier BUNDLE_IDENTIFIER
Mac OS X.app bundle标识符被用作代码签名的默认唯一程序名。通常的形式是反向DNS表示法中的层次名称。例如:com.mycompany.department.appname(默认值:firstscript’s basename)
--target-architecture ARCH, --target-arch ARCH
目标架构(仅macOS;有效值:x86_64, arm64, universal2)。允许在通用2和单arch版本的冻结应用程序之间切换(提供python安装支持目标架构)。如果没有指定目标体系结构,则以当前运行的体系结构为目标。
--codesign-identity IDENTITY
代码签名标识(仅macOS)。使用提供的标识对收集的二进制文件和生成的可执行文件进行签名。如果没有提供签名标识,则执行临时签名。
--osx-entitlements-file FILENAME
在对收集的二进制文件进行编码签名时使用的授权文件(仅限macOS)
--runtime-tmpdir PATH
在一个文件模式下提取库和支持文件。如果给出了这个选项,引导加载程序将忽略运行时操作系统定义的任何临时文件夹位置。将在这里创建_meixxxxxx -文件夹。请使用这个选项,只有当你知道你在做什么。
--bootloader-ignore-signals
告诉引导加载程序忽略信号,而不是将它们转发给子进程。在这样的情况下非常有用,例如,一个管理进程同时向引导加载程序和子进程发出信号(例如通过进程组),以避免向子进程发出两次信号
求关注awa