【python打包】Nuitka-完整指南

官方文档:

nuitka.net/user-docume…

Usage: python.exe -m nuitka [--module]** [--run**]** [options] main**_module.py

参数 说明
--help 显示此帮助信息并退出。
--version 显示版本信息和重要的错误报告细节,然后退出。默认为关闭。
--module 创建一个可导入的二进制扩展模块执行文件而不是程序。默认为关闭。
--mode=COMPILATION_MODE 编译模式。Accelerated 在你的 Python 安装中运行并依赖它。Standalone 创建一个包含可执行文件的文件夹以运行它。Onefile 创建一个单一的可执行文件以部署。默认为 'accelerated'。
--standalone 为输出启用独立模式。这允许你将创建的二进制文件转移到其他机器上,而不需要现有的 Python 安装。这也意味着它会变得很大。它意味着这些选项:"--follow-imports" 和 "--python-flag=no_site"。默认为关闭。
--onefile 在独立模式的基础上,启用 onefile 模式。这意味着不是文件夹,而是创建并使用压缩的可执行文件。默认为关闭。
--python-flag=FLAG 使用的 Python 标志。默认是你用来运行 Nuitka 的,这强制执行特定模式。这些是标准 Python 可执行文件也存在的选项。目前支持的:"-S"(别名 "no_site"),"static_hashes"(不使用哈希随机化),"no_warnings"(不给出 Python 运行时警告),"-O"(别名 "no_asserts"),"no_**docstrings"(不使用文档字符串),"-u"(别名 "unbuffered"),"isolated"(不加载外部代码)和 "-m"(包模式,编译为 "package.**main")。默认为空。
--python-debug 使用调试版本或不使用。默认使用你用来运行 Nuitka 的,很可能是非调试版本。仅用于调试和测试目的。
--python-for-scons=PATH 当使用 Python 3.4 编译时提供用于 Scons 的 Python 二进制文件的路径。否则 Nuitka 可以使用你运行 Nuitka 的,或者从 Windows 注册表中找到 Python 安装。在 Windows 上,需要 Python 3.5 或更高版本。在非 Windows 上,可以使用 Python 2.6 或 2.7。
--main=PATH 如果指定一次,这个代替位置参数,即要编译的文件名。当多次给出时,启用 "multidist"(见用户手册),它允许你创建依赖于文件名或调用名称的二进制文件。

控制结果中模块和包的包含

参数 说明
--include-package=PACKAGE 包含整个包。作为 Python 命名空间给出,例如 "some_package.sub_package",Nuitka 将找到它并包含它以及在磁盘位置下找到的所有模块到它创建的二进制或扩展模块中,并使其可供代码导入。为了避免不需要的子包,例如测试,你可以这样做 "--nofollow-import-to=*.tests"。默认为空。
--include-module=MODULE 包含单个模块。作为 Python 命名空间给出,例如 "some_package.some_module",Nuitka 将找到它并包含它在它创建的二进制或扩展模块中,并使其可供代码导入。默认为空。
--include-plugin-directory=MODULE/PACKAGE 也包括在该目录中找到的代码,将其视为每个主文件。覆盖所有其他包含选项。你应该更喜欢其他按名称而不是文件名的包含选项,这些选项通过在 "sys.path" 中找到东西。这个选项仅适用于非常特殊的用例。可以多次给出。默认为空。
--include-plugin-files=PATTERN 包含与 PATTERN 匹配的文件。覆盖所有其他跟随选项。可以多次给出。默认为空。
--prefer-source-code 对于已经编译的扩展模块,如果有源文件和扩展模块,通常使用扩展模块,但最好从可用的源代码编译模块以获得最佳性能。如果不希望这样,有 --no-prefer-source-code 可以禁用有关它的警告。默认为关闭。

将以下内容控制到导入的模块中

参数 说明
--follow-imports 深入所有导入的模块。在独立模式下默认为开启,否则为关闭。
--follow-import-to=MODULE/PACKAGE 如果使用,跟随到该模块,或者如果是一个包,则跟随整个包。可以多次给出。默认为空。
--nofollow-import-to=MODULE/PACKAGE 即使使用了,也不要跟随到该模块名称,或者如果是包名称,则在任何情况下都不跟随整个包,覆盖所有其他选项。这也可以包含模式,例如 "*.tests"。可以多次给出。默认为空。
--nofollow-imports 根本不深入任何导入的模块,覆盖所有其他包含选项,不可用在独立模式下。默认为关闭。
--follow-stdlib 也深入从标准库导入的模块。这将大大增加编译时间,并且目前也未经充分测试,有时可能无法工作。默认为关闭。

Onefile 选项

参数 说明
--onefile-tempdir-spec=ONEFILE_TEMPDIR_SPEC 在 onefile 模式下,使用这个文件夹作为解包的目标文件夹。默认为 '{TEMP}/onefile_{PID}_{TIME}',即用户的临时目录,因为它是非静态的,所以会被删除。可以使用例如 '{CACHE_DIR}/{COMPANY}/{PRODUCT}/{VERSION}' 这样的字符串作为一个良好的静态缓存路径,这样就不会删除。
--onefile-child-grace-time=GRACE_TIME_MS 当停止子进程时,例如由于 CTRL-C 或关机等原因,Python 代码会得到一个 "KeyboardInterrupt",它可能处理这个中断,例如为了刷新数据。这是在子进程被强制终止前的时间量,单位是毫秒,默认为 5000 毫秒。
--onefile-no-compression 创建 onefile 时,禁用对有效载荷的压缩。这主要用于调试目的,或者为了节省时间。默认为关闭。
--onefile-as-archive 创建 onefile 时,使用可以被 "nuitka-onefile-unpack" 解包的归档格式,而不是只有 onefile 程序本身解包的流。默认为关闭。

数据文件

参数 说明
--include-package-data=PACKAGE 为给定的包名称包含数据文件。DLL 和扩展模块不是数据文件,从不这样包含。可以使用下面指示的模式文件名。包的数据文件默认不包含,但包配置可以这样做。这只包括非 DLL、非扩展模块,即实际的数据文件。在 ":" 后面可以可选地给出文件名模式,只选择匹配的文件。例如:"--include-package-data=package_name"(所有文件)"--include-package-data=package_name=*.txt"(仅某种类型)"--include-package-data=package_name=some_filename.dat"(具体文件)。默认为空。
--include-data-files=DESC 通过文件名在分发中包含数据文件。有许多允许的形式。使用 '--include-data-files=/path/to/file/*.txt=folder_**name/some.txt' 它将复制单个文件,如果它是多个则会抱怨。使用 '--include-data-files=/path/to/files/***.txt=folder_**name/' 它将所有匹配的文件放入该文件夹。对于递归复制,有一个形式与三个值 '--include-data-files=/path/to/scan=folder**_**name/=******/*****.txt' 这将保留目录结构。默认为空。**
--include-data-dir=DIRECTORY 从完整的目录中包含数据文件在分发中。这是递归的。如果你想要不递归包含,请检查带有模式的 '--include-data-files'。一个例子是 '--include-data-dir=/path/some_dir=data/some_dir' 用于简单复制整个目录。所有非代码文件都被复制,如果你想使用 '--noinclude-data-files' 选项来移除它们。默认为空。
--noinclude-data-files=PATTERN 不包含与给定文件名模式匹配的数据文件。这是针对目标文件名,而不是源路径。所以要忽略 'package_name' 的包数据中的文件模式应该是 'package_name/*.txt'。或者对于整个目录简单地使用 'package_name'。默认为空。
--include-onefile-external-data=PATTERN 在 onefile 二进制文件外部包含指定的数据文件模式,而不是内部。只有在 '--onefile' 编译的情况下才有意义。首先必须使用其他 --include-*data*选项指定文件,然后这个引用目标路径中的分发。默认为空。
--list-package-data=LIST_PACKAGE_DATA 输出给定包名称找到的数据文件。默认不执行。
--include-raw-dir=DIRECTORY 完全包含原始目录在分发中。这是递归的。检查 '--include-data-dir' 使用理智的选项。默认为空。

元数据支持

参数 说明
--include-distribution-metadata=DISTRIBUTION 为给定的分发名称包含元数据信息。有些包会检查元数据以确定存在、版本、入口点等,如果没有给出这个选项,它只在编译时被识别时才有效,而这种情况并不总是发生。当然,这只对于包含在编译中的包才有意义。默认为空。

DLL 文件

参数 说明
--noinclude-dlls=PATTERN 不要包含与给定的文件名模式匹配的 DLL 文件。这是针对目标文件名,而不是源路径。因此,如果要忽略包含在 'package_name' 包中的 'someDLL' DLL,应该匹配为 'package_name/someDLL.*'。默认为空。
--list-package-dlls=LIST_PACKAGE_DLLS 输出给定包名称找到的 DLL 文件。默认不执行。

控制 Nuitka 发出的警告

参数 说明
--warn-implicit-exceptions 启用在编译时检测到的隐式异常的警告。
--warn-unusual-code 启用在编译时检测到的不寻常代码的警告。
--assume-yes-for-downloads 允许 Nuitka 在必要时下载外部代码,例如依赖 Walker、ccache,甚至在 Windows 上的 gcc。要禁用此功能,可以从空设备重定向输入,例如 "</dev/null" 或 "<NUL:"。默认会提示。
--nowarn-mnemonic=MNEMONIC 禁用给定助记词的警告。这些警告是为了确保您了解某些主题,通常指向 Nuitka 网站。助记词是 URL 的最后部分,不包括 HTML 后缀。可以多次给出,并接受 shell 模式。默认为空。

编译后立即执行

参数 说明
--run 立即执行创建的二进制文件(或导入编译后的模块)。默认为关闭。
--debugger 在调试器中执行,例如使用 "gdb" 或 "lldb" 以自动获取堆栈跟踪。默认为关闭。

编译选择

参数 说明
--user-package-configuration-file=YAML_FILENAME 提供用户自定义的 Yaml 文件以配置包。你可以包含 DLLs、移除不必要的代码、添加隐藏的依赖。请查看 Nuitka 包配置手册以了解格式的完整描述。可以多次给出。默认为空。
--full-compat 强制与 CPython 完全兼容。甚至不允许与 CPython 行为有轻微偏差,例如没有更好的 tracebacks 或异常消息,这些并不是真正的不兼容,而只是不同或更差。这只用于测试,并且不应该被使用。
--file-reference-choice=MODE **选择 "**file" 的值是什么。使用 "runtime"(独立二进制模式和模块模式的默认值),创建的二进制文件和模块使用它们自己的所在地点来推断 "file" 的值。包含的包假装在那个位置的目录下。这允许你在部署中包含数据文件。如果你只是寻求加速,最好使用 "original" 值,其中将使用源文件的位置。使用 "frozen" 时,将使用标记 ""。出于兼容性原因,"file" 的值总是会有 ".py" 后缀,不管它实际上是什么。
--module-name-choice=MODE **选择 "**name" 和 "package" 的值是什么。使用 "runtime"(模块模式的默认值),创建的模块使用父包来推断 "package" 的值,以完全兼容。"original" 值(其他模式的默认值)允许更多的静态优化发生,但对于通常可以加载到任何包中的模块是不兼容的。

输出选择

参数 说明
--output-filename=FILENAME 指定可执行文件的名称。对于扩展模块,没有选择的余地,对于独立模式也是如此,使用它将是一个错误。这可能包括需要存在的路径信息。默认为当前平台上的 '<program_name>.exe'。
--output-dir=DIRECTORY 指定中间和最终输出文件应该放置的位置。DIRECTORY 将被填充构建文件夹、分发文件夹、二进制文件等。默认为当前目录。
--remove-output 在生成模块或可执行文件后移除构建目录。默认为关闭。
--no-pyi-file 不为 Nuitka 创建的扩展模块创建 '.pyi' 文件。这个文件用于检测隐式导入。默认为关闭。

以下是根据您提供的 Nuitka 文档内容,翻译并生成的 Markdown 格式表格,包含标题和命令的中文翻译,以及说明部分的完整中文翻译:

部署控制

参数 说明
--deployment 禁用旨在使发现兼容性问题更容易的代码。例如,这将阻止使用 "-c" 参数执行,这通常被尝试运行模块的代码使用,可能导致程序反复启动。一旦你部署给最终用户,禁用此选项,对于发现典型问题,在开发过程中这非常有帮助。默认为关闭。

环境控制

参数 说明
--force-runtime-environment-variable=VARIABLE_SPEC 强制环境变量为给定值。默认为空。

调试特性

参数 说明
--debug 执行所有可能的自检以查找 Nuitka 中的错误,不要用于生产环境。默认为关闭。
--no-debug-immortal-assumptions 禁用通常与 "--debug" 一起执行的检查。在 Python3.12+ 中不检查已知的不朽对象假设。一些 C 库会破坏它们。如果 "--debug" 打开,则默认进行检查。
--unstripped 保留结果对象文件中的调试信息,以获得更好的调试器交互。默认为关闭。
--profile 启用基于 vmprof 的时间分析。目前不工作。默认为关闭。
--trace-execution 跟踪执行输出,在执行前输出代码行。默认为关闭。
--xml=XML_FILENAME 将内部程序结构、优化结果以 XML 形式写入给定的文件名。
--experimental=FLAG 使用被声明为“实验性”的特性。如果代码中没有实验性特性,则可能没有效果。根据实验特性使用秘密标签(查看源代码)。
--low-memory 尝试使用更少的内存,通过分叉更少的 C 编译作业和使用使用更少内存的选项。用于嵌入式机器。如果出现内存不足问题,请使用此选项。默认为关闭。
--create-environment-from-report=CREATE_ENVIRONMENT_FROM_REPORT 根据给定的报告文件(例如 '--report=compilation-report.xml')在该不存在的路径创建一个新的虚拟环境。默认不执行。
--generate-c-only 仅生成 C 源代码,并不编译为二进制文件或模块。这是为了调试和代码覆盖分析,不会浪费 CPU。默认为关闭。不要直接使用此选项。

Nuitka 开发特性

参数 说明
--devel-missing-code-helpers 报告尝试但不存在的类型代码帮助器的警告。这有助于识别改进未使用的类型知识生成代码优化的机会。默认为 False。
--devel-missing-trust 报告可以被信任但当前不是的导入的警告。这是为了识别改进处理硬模块的机会,这有时可以允许更多的静态优化。默认为 False。
--devel-recompile-c-only 这不是增量编译,而只是 Nuitka 开发使用。取现有文件并在执行 Python 步骤后简单地将它们重新编译为 C。允许编译编辑过的 C 文件以手动调试对生成源代码的更改。允许我们添加打印、检查和打印值,但现在不是用户想要的。取决于编译 Python 源代码以确定应该查看哪些文件。
--devel-internal-graph 创建优化过程内部的图,不要用于整个程序,而只用于小型测试用例。默认为关闭。

后端 C 编译器选择

参数 说明
--clang 强制使用 clang。在 Windows 上,这需要一个有效的 Visual Studio 版本来依赖。默认为关闭。
--mingw64 强制在 Windows 上使用 MinGW64。默认为关闭,除非使用带有 MinGW Python 的 MSYS2。
--msvc=MSVC_VERSION 强制在 Windows 上使用特定的 MSVC 版本。允许的值例如 "14.3"(MSVC 2022)和其他 MSVC 版本号,指定 "list" 列出已安装的编译器,或使用 "latest"。默认为如果已安装则使用最新的 MSVC,否则使用 MinGW64。
--jobs=N 指定允许的并行 C 编译作业数量。负值是系统 CPU 减去给定值。默认为系统 CPU 核心数,除非激活低内存模式,则默认为 1。
--lto=choice 使用链接时优化(MSVC、gcc、clang)。允许的值为 "yes"、"no" 和 "auto"(当已知有效时)。默认为 "auto"。
--static-libpython=choice 使用 Python 的静态链接库。允许的值为 "yes"、"no" 和 "auto"(当已知有效时)。默认为 "auto"。
--cf-protection=PROTECTION_MODE 此选项特定于 gcc。对于 gcc 编译器,选择 "cf-protection" 模式。默认 "auto" 是使用 gcc 默认值,但你可以覆盖它,例如用 "none" 值禁用它。有关详细信息,请参阅 gcc 文档中的 "-fcf-protection"。

缓存控制

参数 说明
--disable-cache=DISABLED_CACHES 禁用选定的缓存,指定 "all" 为所有缓存。当前允许的值为:"all"、"ccache"、"bytecode"、"compression"、"dll-dependencies"。可以多次给出或用逗号分隔的值。默认无。
--clean-cache=CLEAN_CACHES 在执行前清理给定的缓存,指定 "all" 为所有缓存。当前允许的值为:"all"、"ccache"、"bytecode"、"compression"、"dll-dependencies"。可以多次给出或用逗号分隔的值。默认无。
--force-dll-dependency-cache-update 用于更新依赖 Walker 缓存。将导致创建分发文件夹的时间更长,但如果缓存疑似导致错误或已知需要更新,可能会使用。

PGO 编译选择

参数 说明
--pgo-c 通过执行专门的构建来进行分析运行,然后使用结果反馈到 C 编译中,启用 C 级别的性能优化(PGO)。注意:这是实验性的,并且尚未适用于 Nuitka 的独立模式。默认为关闭。
--pgo-args=PGO_ARGS 在性能优化的情况下传递的参数。这些在 PGO 分析运行期间传递给特殊构建的可执行文件。默认为空。
--pgo-executable=PGO_EXECUTABLE 收集配置信息时执行的命令。仅在你需要通过脚本来启动它以准备运行时使用。默认使用创建的程序。

跟踪特性

参数 说明
--report=REPORT_FILENAME 在 XML 输出文件中报告模块、数据文件、编译、插件等详细信息。这对于问题报告也非常有用。这些报告可以例如用来使用 '--create-environment-from-report' 轻松重新创建环境,但包含大量信息。默认为关闭。
--report-diffable 以可 diff 的形式报告数据,即不包括每次运行都变化的计时或内存使用值。默认为关闭。
--report-user-provided=KEY_VALUE **报告您提供的数据。这可以多次给出,并且可以是任何形式的 'key=value',其中 key 应该是一个标识符,例如使用 '--report-user-provided=pipenv-lock-hash=64a5e4' 来跟踪一些输入值。默认为空。**
--report-template=REPORT_DESC 通过模板报告。提供模板和输出文件名 'template.rst.j2:output.rst'。有关内置模板的信息,请查看用户手册。可以多次给出。默认为空。
--quiet 禁用所有信息输出,但显示警告。默认为关闭。
--show-scons 以详细模式运行 C 构建后端 Scons,显示执行的命令、检测到的编译器。默认为关闭。
--no-progressbar 禁用进度条。默认为关闭。
--show-progress 过时:提供进度信息和统计。禁用正常进度条。默认为关闭。
--show-memory 提供内存信息和统计。默认为关闭。
--show-modules 提供包含的模块和 DLL 的信息。过时:你应该使用 '--report' 文件代替。默认为关闭。
--show-modules-output=PATH 输出 '--show-modules' 的位置,应该是一个文件名。默认为标准输出。
--verbose 输出采取的行动的细节,特别是在优化中。可能会变得很多。默认为关闭。
--verbose-output=PATH 输出 '--verbose' 的位置,应该是一个文件名。默认为标准输出。

通用操作系统控制

参数 说明
--force-stdout-spec=FORCE_STDOUT_SPEC 强制程序的标准输出到此位置。对于禁用控制台和使用 Nuitka 商业 Windows 服务插件的程序很有用。默认不激活,例如使用 '{PROGRAM_BASE}.out.txt',即程序附近的文件,查看用户手册了解所有可用值。
--force-stderr-spec=FORCE_STDERR_SPEC 强制程序的标准错误到此位置。对于禁用控制台和使用 Nuitka 商业 Windows 服务插件的程序很有用。默认不激活,例如使用 '{PROGRAM_BASE}.err.txt',即程序附近的文件,查看用户手册了解所有可用值。

Windows 特定控制

参数 说明
--windows-console-mode=CONSOLE_MODE 选择要使用的控制台模式。默认模式是 'force',除非程序从一个控制台启动,否则会创建一个控制台窗口。使用 'disable' 则根本不创建或使用控制台。使用 'attach' 将使用现有的控制台进行输出。使用 'hide' 将隐藏新生成的控制台,而现有的控制台将表现得像 'force'。默认为 'force'。
--windows-icon-from-ico=ICON_PATH 添加可执行文件图标。可以多次给出,以支持不同分辨率或包含多个图标的文件。在后一种情况下,你也可以使用 # 后缀,其中 n 是从 1 开始的整数索引,指定包含特定图标,而忽略其他图标。
--windows-icon-from-exe=ICON_EXE_PATH 从现有的可执行文件复制可执行文件图标(仅限 Windows)。
--onefile-windows-splash-screen-image=SPLASH_SCREEN_IMAGE 编译 Windows 和 onefile 时,在加载应用程序时显示此图像。默认为关闭。
--windows-uac-admin 请求 Windows 用户控制,以在执行时授予管理权限(仅限 Windows)。默认为关闭。
--windows-uac-uiaccess 请求 Windows 用户控制,以强制从少数文件夹运行,远程桌面访问(仅限 Windows)。默认为关闭。

macOS 特定控制

参数 说明
--macos-create-app-bundle 编译 macOS 时,创建一个 bundle 而不是一个普通的二进制应用程序。这是解锁禁用控制台、获得高 DPI 图形等的唯一方式,意味着独立模式。默认为关闭。
--macos-target-arch=MACOS_TARGET_ARCH 这是应该运行的架构。默认和限制是运行 Python 允许的。默认是 "native",即 Python 运行的架构。
--macos-app-icon=ICON_PATH 为应用程序 bundle 添加图标。只能给出一次。默认为可用的 Python 图标。
--macos-signed-app-name=MACOS_SIGNED_APP_NAME 用于 macOS 签名的应用程序名称。遵循 "com.YourCompany.AppName" 命名结果最佳,因为这些必须是全局唯一的,并且可能会获得受保护的 API 访问权限。
--macos-app-name=MACOS_APP_NAME 在 macOS bundle 信息中使用的产品的名称。默认为二进制文件的基本文件名。
--macos-app-mode=MODE 应用程序 bundle 的应用程序模式。当启动一个窗口,并希望出现在 Docker 中时,默认值 "gui" 是一个很好的选择。如果没有窗口,应用程序是 "background" 应用程序。对于稍后显示的 UI 元素,"ui-element" 是中间的。应用程序不会出现在 dock 中,但在稍后打开窗口时将获得完整的桌面访问权限。
--macos-sign-identity=MACOS_APP_VERSION 在 macOS 上签名时,默认使用临时身份,但使用此选项可以指定另一个身份。代码签名现在是强制性的,不能禁用。使用 "auto" 检测你安装的唯一身份。如果没有给出,默认为 "ad-hoc"。
--macos-sign-notarization 签名时用于 notarization,使用 Apple 的适当 TeamID 身份,使用所需的运行时签名选项,以便它能够被接受。
--macos-app-version=MACOS_APP_VERSION 在 macOS bundle 信息中使用的产品的版本。如果没有给出,默认为 "1.0"。
--macos-app-protected-resource=RESOURCE_DESC 请求访问 macOS 受保护资源的权限,例如 "NSMicrophoneUsageDescription:录音音频访问麦克风。" 请求访问麦克风并为用户提供一个说明性文本,说明为什么需要它。冒号前是操作系统的访问权限标识符,然后是说明性文本。合法值可以在developer.apple.com/documentati…上找到,此选项可以多次指定。默认为空。

Linux 特定控制

参数 说明
--linux-icon=ICON_PATH 为 onefile 二进制文件添加可执行文件图标。只能给出一次。默认为可用的 Python 图标。

二进制版本信息

参数 说明
--company-name=COMPANY_NAME 在版本信息中使用的公司名称。默认未使用。
--product-name=PRODUCT_NAME 在版本信息中使用的产品名称。默认为二进制文件的基本文件名。
--file-version=FILE_VERSION 在版本信息中使用的文件版本。必须是最多 4 个数字的序列,例如 1.0 或 1.0.0.0,不允许更多的数字,也不允许字符串。默认未使用。
--product-version=PRODUCT_VERSION 在版本信息中使用的产品版本。规则与文件版本相同。默认未使用。
--file-description=FILE_DESCRIPTION 用于版本信息的文件描述。目前仅在 Windows 上。默认为二进制文件名。
--copyright=COPYRIGHT_TEXT 用于版本信息的版权。目前仅在 Windows/macOS 上。默认为不出现。
--trademarks=TRADEMARK_TEXT 用于版本信息的商标。目前仅在 Windows/macOS 上。默认为不出现。

插件控制

参数 说明
--enable-plugins=PLUGIN_NAME 启用插件。必须是插件名称。使用 '--plugin-list' 查询完整列表并退出。默认为空。
--disable-plugins=PLUGIN_NAME 禁用插件。必须是插件名称。使用 '--plugin-list' 查询完整列表并退出。大多数标准插件不建议禁用。默认为空。
--user-plugin=PATH 用户插件的文件名。可以多次给出。默认为空。
--plugin-list 显示所有可用插件的列表并退出。默认为关闭。
--plugin-no-detection 插件可以检测它们是否可能被使用,你可以通过 "--disable-plugin=plugin-that-warned" 禁用警告,或者你可以使用这个选项完全禁用该机制,这当然也会稍微加快编译速度,因为一旦你确定要使用哪些插件,这个检测代码就是徒劳运行的。默认为关闭。
--module-parameter=MODULE_PARAMETERS **提供模块参数。一些包要求你提供额外的决策。当前的格式是 --module-parameter=module.name-option-name=value 默认为空。**
--show-source-changes=SHOW_SOURCE_CHANGES 在编译前显示原始 Python 文件内容的源代码更改。主要用于开发插件和 Nuitka 包配置。例如使用 '--show-source-changes=numpy.**' 查看给定命名空间下的所有更改,或使用 '*' 查看所有内容,这可能会很多。默认为空。

交叉编译

参数 说明
--target=TARGET_DESC 交叉编译目标。高度实验性和开发中,尚不预期工作。我们正在研究 '--target=wasi',尚未其他。

'anti-bloat' 插件选项

参数 说明
--show-anti-bloat-changes 注释插件所做的更改。
--noinclude-setuptools-mode=NOINCLUDE_SETUPTOOLS_MODE 如果遇到 'setuptools' 或导入,该怎么做。这个包可能很大且依赖项多,绝对应该避免。也处理 'setuptools_scm'。
--noinclude-pytest-mode=NOINCLUDE_PYTEST_MODE 如果遇到 'pytest' 导入,该怎么做。这个包可能很大且依赖项多,绝对应该避免。也处理 'nose' 导入。
--noinclude-unittest-mode=NOINCLUDE_UNITTEST_MODE 如果遇到 unittest 导入,该怎么做。这个包可能很大且依赖项多,绝对应该避免。
--noinclude-pydoc-mode=NOINCLUDE_PYDOC_MODE 如果遇到 pydoc 导入,该怎么做。这个包用于部署的无用代码,应该避免。
--noinclude-IPython-mode=NOINCLUDE_IPYTHON_MODE 如果遇到 IPython 导入,该怎么做。这个包可能很大且依赖项多,绝对应该避免。
--noinclude-dask-mode=NOINCLUDE_DASK_MODE 如果遇到 'dask' 导入,该怎么做。这个包可能很大且依赖项多,绝对应该避免。
--noinclude-numba-mode=NOINCLUDE_NUMBA_MODE 如果遇到 'numba' 导入,该怎么做。这个包可能很大且依赖项多,目前不适用于独立。这个包很大且依赖项多,绝对应该避免。
--noinclude-default-mode=NOINCLUDE_DEFAULT_MODE 这实际上为上述选项提供了默认的 "warning" 值,可以用来打开所有这些。
--noinclude-custom-mode=CUSTOM_CHOICES 如果遇到特定导入,该怎么做。格式是模块名称,可以并且应该是顶级包,然后是一个选择,"error"、"warning"、"nofollow",例如 PyQt5:error。

'playwright' 插件选项

命令 说明
--playwright-include-browser=INCLUDE_BROWSERS 包括 playwright 浏览器。可以多次指定。使用 "all" 包括所有已安装的浏览器。

'spacy' 插件选项

命令 说明
--spacy-language-model=INCLUDE_LANGUAGE_MODELS 使用的 spacy 语言模型。可以多次指定。使用 'all' 包括所有已下载的模型。