发布网友 发布时间:23小时前
共1个回答
热心网友 时间:16小时前
Nuitka 是一个将 Python 代码打包为可执行文件的工具,适用于 Windows 系统,特别在无 Python 环境的场景下方便运行。其原理是将 Python 代码(自行编写的部分)转换成 C 代码,以提升执行速度。
通用选项如 --standalone 可确保打包结果与本地 Python 环境无关,具有跨平台的可移植性。使用 --onefile 则生成一个单一的可执行文件,而非一个包含多个文件的文件夹。总结而言,使用 --onefile 选项时的打包结果类似于绿色软件,仅包含一个可执行文件,而 --standalone 的结果则更像传统软件安装,包含运行所需的文件和程序入口。
启用 --lto 可以实现链接时间优化,通过在编译和链接阶段对整个程序进行优化,提高程序性能和执行效率。--remove-output 可在打包结束后清理生成的临时文件。--enable-plugin= 启用指定插件,用于正确处理在打包的 Python 代码中使用到的特定包。具体插件列表可通过 nuitka --plugin-list 查看。--disable-console 设置,运行打包后的程序时不会弹出控制台,直接运行 GUI 程序。--include-package-data= 选项包含指定软件包的数据文件,以避免运行程序时出现 FileNotFoundError 等错误。--include-data-files= 和 --include-data-dir= 选项用于包含文件夹中的数据文件,通过指定源文件夹路径和目标路径,以确保正确打包。
使用 Nuitka 将 Python 代码编译为二进制文件的示例:python -m nuitka --lto=no --onefile --standalone test1.py。编译带有 numpy 模块的 C 代码示例:python -m nuitka --lto=no --onefile --standalone --include-module=numpy test1.py。
在实际使用中,应注意遵循官方文档建议,使用 python -m nuitka 而非直接运行 nuitka 命令,以确保正确使用。此外,推荐使用 CPython 作为执行 Nuitka 的 Python 解释器,以避免功能受限。Nuitka 的优点包括对动态链接库分析的准确性、较小的打包后软件占用空间,但缺点是打包时间较长,且存在商业版本,需要付费。
常用选项包括控制包含的模块和包、OneFile 选项、数据文件、DLL 文件、警告控制、编译后立即执行、编译选项、输出选项、调试功能、后端 C 编译器选择、缓存控制、PGO 编译选项、跟踪功能、操作系统通用选项、Windows、macOS 和 Linux 特定控件。--linux-icon=ICON_PATH 选项允许为 onefile 二进制文件添加可执行图标。二进制版本信息用于标识程序。
插件控件用于支持特定功能,具体插件列表可参考文档。遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和声明。详细信息请参考原文链接:blog.csdn.net/m0_665708...