我为什么要写这篇文章
现在在百度上搜nuitka的讲解,排在开头的都是知乎的,都是单纯的比较,大夸nuitka,但是对用法和可能出现的问题含糊不清,我碰了很多次壁
无论绘制多少梗图,我依然一头雾水,所以为了以直报怨,写了这篇文章
性质
定位
nuitka是一种可以将python代码打包生成可执行文件的程序
是pyinstaller的竞争对手。
优点
nuitka可以将python转化成c语言程序并打包,这样可以对程序进行加密。减少或杜绝反编译。
同时减少了文件占用,加快了启动速度
缺点
使用流程偏复杂,打包时间长,学习成本偏高
安装
我拒绝使用任何第三方包管理工具,因为他们更复杂,更容易在我的破电脑上出问题
安装命令很简单
pip install nuitka
但是进度条走到最后不代表安装完成
小插曲
在完成安装命令后,找出你需要打包的python代码,
nuitka demo.py
然后他会在做好准备工作之后提示下载mingw编译器。
自动的,但是速度较慢
在知乎上面,压根没有提到这个点。
在csdn的其他文章上,其他博主也有一样的问题。
他们提供了百度网盘分享链接,笑死,不开会员的百度网盘可比原版链接还慢哦。
所以,我等,这个下载链接虽然慢,但是还算稳定,每秒进度条都会动。
大约二十来分钟后,下载好了
参数配置
nuitka和pyinstaller的一大不同就在于参数配置更复杂
更完整的可参照Python 打包工具 Nuitka 入门指南-CSDN博客
很复杂,但最常用的是以下几个
常用
--onefile #单文件使用,已包含下面的那条
--standalone#独立环境,当然要选,否则打包干嘛
--windows-disable-console#没有CMD控制窗口
必需
如果程序使用了这几个库,必须附带插件,否则无法使用
--enable-plugin=pyside6 打包pyside6模块的刚需
--plugin-enable=tk-inter 打包tkinter模块的刚需
--plugin-enable=numpy 打包numpy,pandas,matplotlib模块的刚需
--plugin-enable=torch 打包pytorch的刚需