使用Nuitka将Python程序打包成exe可执行文件
Nuitka是一款可以将Python代码打包成exe可执行文件的工具。相对与其他打包工具,Nuitka会将Python代码转换为C代码后进行编译,可以提升编译后程序的执行效率。记录一下使用Nuitka工具将Python程序打包成exe可执行文件的过程。
一、环境安装
1.安装MSVC编译器
Nuitka会将python代码转换为C程序代码,所以编译的时候依赖C编译器。
可以选择MSVC或者MinGW-w64,因为MSVC对Windows桌面程序的支持更好,所以我们选择安装MSVC编译器。
MSVC是微软的Visual C++开发工具,可以在微软官方下载。
MSVC下载地址:https://visualstudio.microsoft.com/zh-hans/downloads/
进入下载页面后拉到网页底部,点击用于Visual Studio的工具,选择Visual Studio生成工具下载:

下载文件为vs_BuildTools.exe,运行后进入安装程序:

勾选使用C++的桌面开发选项,默认会带上MSVC和Windows SDK,点击安装即可:

2.安装Nuitka
Nuitka可以通过Python的pip工具进行安装,安装命令如下:
pip install nuitka 安装成功后通过下面命令可以查看Nuitka版本:
python -m nuitka --version 
这样环境就安装完成了。
二、Nuitka打包命令介绍
其中main_module.py要替换成需要打包的主程序入口文件。
1.打包成单个可执行文件模式
打包命令如下:
python -m nuitka --mode=onefile main_module.py 使用该命令可以将python代码、Python运行环境与第三方依赖打包成单个可执行的exe文件,打包的程序运行的时候会将内容解压到临时目录中运行。
2.打包成文件夹模式
打包命令如下:
python -m nuitka --mode=standalone main_module.py 使用该命令可以将Python代码打包成一个文件夹,文件夹中包含可执行的exe和Python运行环境与所有三方依赖。使用该方式打包的程序运行时不会创建临时目录与文件,所有运行资源都在文件夹中。
3.其他常用打包参数
- ---windows-console-mode=disable:隐藏控制台窗口,默认值是force强制显示,通过设置为disable隐藏。
- --include-data-dir=image=image:添加外部目录到程序,命令参数为源目录=目标目录。
- --windows-icon-from-ico:添加图标。
- --include-package:添加需要包含的包。
- --include-module:添加需要包含的模块。
- --product-name:添加产品名称。
- --company-name:添加公司名称。
- --file-version:添加文件版本信息。
- --product-version:添加产品版本信息。
- --copyright:添加版权信息。
- --file-description:添加文件说明。
- --lto=yes:启用链接时优化,提升程序运行速度。
- --jobs=2:调整并行编译任务数量。
- --assume-yes-for-downloads:自动同意下载依赖。
- --report=report.xml:生成编译报告。
三、实际操作打包python程序
1.开始打包
因为我们需要稳定的运行状态,所以选择打包成文件夹,打包命令如下:
python -m nuitka --standalone --enable-plugin=pyqt6 --include-qt-plugins=multimedia --windows-console-mode=disable --windows-icon-from-ico=app.ico --output-dir=dist --assume-yes-for-downloads --jobs=4 app.py 我们进入需要打包的源码目录,打开cmd窗口执行命令:

2.打包结果
执行打包命令后会在当前文件夹中生成dist文件夹,然后开始下载依赖到其中,打包后的文件会存到dist文件夹下面程序名称.dist件夹中,比如我们的程序名叫app,打包后的名称就会叫app.dist:

文件夹中包含编译后的程序与所有依赖,其中app.exe就是程序入口:

3.测试程序启动
启动程序测试是否可以正常使用:

程序可用正常说明Nuitka已经成功将Python代码打包成可执行文件了。
我们将打包后的dist\app.dist文件夹压缩后,就可以发给小伙伴们一起玩耍了。
扩展说明
- 本文标签: Python Windows
- 本文链接: https://blog.eyyyye.com/article/166
- 版权声明: 本文由爱做梦的比特原创发布,转载请遵循《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
