python——Nuitka打包

1. Nuitka vs PyInstaller

核心维度 PyInstaller Nuitka 胜出者
源码安全性 极差(等于裸奔) 。使用 pyinstxtractor 等工具,1分钟就能逆向提取出几乎完整的源码。 极高。代码已经被编译成了底层机器码,想逆向?请去啃汇编语言。商业项目首选。 🏆 Nuitka
启动速度 慢。每次运行都需要在后台解压庞大的环境文件,有明显的延迟感。 极快。无需解压,直接执行机器码,基本做到秒开。 🏆 Nuitka
运行性能 标准 Python 速度,没有任何提升。 翻译成 C 后,部分逻辑(尤其是循环、运算)有显著的性能提升。 🏆 Nuitka
打包速度 快。几秒或几十秒搞定。 慢。需要调用 C 编译器进行深度编译,大项目可能需要几十分钟。 🏆 PyInstaller
易用性与兼容性 开箱即用,第三方库兼容性极好。 配置相对复杂,部分涉及动态反射或魔法操作的库需要引入额外的 Plugin。 🏆 PyInstaller

2. 安装 Nuitka

除了安装 Nuitka 本身,由于需要编译 C 代码,在 Windows 上你通常还需要一个 C 编译器(安装 Nuitka 时,它会自动提示并帮你下载标准的 MinGW64 编译器,非常贴心)。

pip install nuitka

基础打包命令

最简单的打包命令,生成一个包含依赖的独立文件夹:

python -m nuitka --standalone your_script.py

进阶打包

在实际的企业级应用中(比如结合了 PyQt5 GUI 和 Flask 后端),我们往往需要更精细的控制。以下是一个非常成熟的实战命令:

python -m nuitka --standalone --onefile --windows-console-mode=disable --enable-plugin=pyqt5 --include-data-dir=static=static --windows-icon-from-ico=favicon.ico main.py

参数拆解:

  • --standalone: 独立运行模式,打包所有依赖。

  • --onefile: 打包成一个单一的 .exe 文件(干净利落)。

  • --windows-console-mode=disable: 运行时隐藏丑陋的黑色控制台窗口(GUI 程序必备)。

  • --enable-plugin=pyqt5: 启用 PyQt5 插件,完美解决各种 Qt 依赖缺失问题。

  • --include-data-dir=static=static: 静态资源打包(把前端页面、图片等塞进程序里)。

  • --windows-icon-from-ico=favicon.ico: 设置高大上的程序图标。

相关推荐
李纲明几秒前
WordPress 媒体库上传失败或一直转圈:先核 PHP 上传限制与目录权限,再查安全插件与对象存储
运维·开发语言·安全·php·wordpress·媒体库·devdiy
第九序言T8 小时前
Python 数据处理进阶(十八)批量处理同结构文件:一个文件夹一次跑完
开发语言·python·自动化·pandas·数据处理
Java后端的Ai之路8 小时前
CAS并发控制-从CPU指令到企业级乐观锁
vue.js·人工智能·python·cas·乐观锁
qq_426003969 小时前
UI自动化高频次登录login限流解决方案
python·ui·自动化
Sakura_j_h_9 小时前
EasyEDA PCB 快速设计Skills
c++·python·github
龙亘川10 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
程序喵大人10 小时前
【C++入门】内存模型与资源管理 - 09 shared_ptr 和 weak_ptr 解决共享,也带来代价
开发语言·c++·资源管理·智能指针·内存模型
quantdash_cc10 小时前
如何验证历史行情的交易日期是否完整覆盖研究区间?
python·数据分析·pandas·量化交易·股票数据·quantdash
I Am a robert girl10 小时前
当智能体学会“串通”:从长程交互中读懂涌现式合谋
python·多智能体系统·多智能体协作·llm agent·涌现式合谋·对齐问题·激励机制设计
Raas10010 小时前
AI网关部署方案?从部署到上线全流程
java·开发语言·人工智能·gateway·ai网关·企业级ai网关·企业级ai产品