Nuitka的简要使用

前言

相较于传统的Python打包工具pyinstallerNuitka具有更高的效率和安全性。不过,Nuitka的上手难度稍高。

安装

推荐使用pip安装:

1
pip install Nuitka

如果下载缓慢,可以参考这篇文章

如果要用到--onefile参数,可以安装zstandard压缩文件:

1
pip install zstandard

此外,还需要下载C++编译器MinGW

使用

使用以下命令即可从main.py编译生成.exe文件:

1
nuitka --mingw64 main.py

--follow-imports参数编译所有调用的模块,此时可以用--nofollow-import-to不编译指定模块。--nofollow-imports参数不编译所有模块,此时可以用--follow-import-to=参数编译指定模块。
例如,main.py中调用了config.py,那么就要用参数--follow-imports--follow-import-to=config.py

为了方便移植,可以添加参数--standalone--standalone包含了参数--follow-imports

1
nuitka --mingw64 --standalone main.py

要打包成单个.exe文件,需要用到--onefile参数:

1
nuitka --mingw64 --standalone --onefile main.py

程序中调用了某些模块时,需要用到--enable-plugin=参数调用插件。使用nuitka --plugin-list可以查看插件列表。例如,tkinter包有--enable-plugin=tk-inter,PySide6包有--enable-plugin=pyside6
对于一个调用了PySide6的程序,就可以用如下命令打包:

1
nuitka --mingw64 --standalone --onefile --enable-plugin=pyside6 --windows-disable-console main.py

其中--windows-disable-console参数会隐藏Windows系统下的控制台。

最后,--show-progress可以显示编译进度,--show-memory可以显示内存占用:

1
nuitka --mingw64 --standalone --onefile --show-progress --show-memory --enable-plugin=pyside6 --windows-disable-console main.py

Nuitka还有一些常用参数:

  • --include-data-dir=:数据文件夹
  • --output-dir=:输出文件夹
  • --windows-icon-from-ico=:Windows下的图标
0%