PyQt5写好的py文件生成可执行的exe文件【Nuitka】

用Nuitka将PyQt5的py文件打包成exe

1.Nuitka引入

  看过我上一篇PyQt5写好的py文件生成可执行的exe文件【Pyinstaller】的应该了解到用PyQt5写的界面程序可以通过Pyinstaller打包成exe可执行程序,那么打包程序就这一种方式吗?当然不是,本章将介绍另一个大杀器,它的名字叫做Nuitka!
  那么有人可能就要问了,Pyinstaller已经可以将PyQt5打包成exe可执行程序了,为什么还需要介绍Nuitka,结果都是可执行文件,没什么区别嘛?!
  No,No,No!区别大了去了!Pyinstaller打包程序虽然指令简单,打包速度快,非常适合小白使用,但是长剑在手其比不好挥舞,它的问题就是打包完成的程序会占用很大的内存,并且实际运行时点击exe文件后一般需要等个十几秒才会响应,这就让人很膈应了,要知道目标检测的模型目前追求的大致包括三个方向,一是精确度,而是轻量化,三便是实时性,好家伙,Pyinstaller跟第一个不沾边,另两条完全不满足,非要我概括就是四肢发达头脑简单,毕竟人都有爱美之心,我们肯定喜欢文静内敛但不失风度的美男子,Nuitka就是这个美男子!同样的,风险与收益并存,Nuitka也并非全身都是优点,人非圣贤,孰能无过!那Nuitka的优缺点各是啥呢?

2.Nuitka与Pyinstaller对比

  简单的来说,Nuitka就是Pyinstaller的相对面,Nuitka打包完成的程序启动快,内存小,使用简直让人心旷神怡、想入非非,但是缺点就是生成exe可执行程序时指令太多,比较繁琐。
  好啦,介绍到这里,大家需要了解的就够了,毕竟我们也不需要去写这个打包程序,大家只要知道怎么用就可以了,啊啊啊,才发现我说了这么多废话,大家是不是等不及了,让我们进入正文吧!

Nuitka安装

   Nuitka也是Python的第三方库,因此需要进行安装,安装命令是pip install Nuitka -i https://pypi.tuna.tsinghua.edu.cn/simple

3.Nuitka指令

示例:
将界面py文件和需要调用的文件放在一个文件夹,main.py与ui文件夹放在一块:


代码:

nuitka --standalone -
将 `.py` 文件打包成 `.exe` 可执行文件,最常用且简单的方法是使用 **PyInstaller**。它能将 Python 脚本及其依赖库、解释器一起打包成一个独立的 `.exe` 文件,无需目标电脑安装 Python 即可运行。 --- ### ✅ 使用 `PyInstaller` 打包 Python 程序为 `.exe` 的完整流程 #### 🔧 第一步:安装 PyInstaller 打开命令行(终端),运行: ```bash pip install pyinstaller ``` > ✅ 支持 Windows、macOS、Linux > ⚠️ 推荐在虚拟环境或干净环境中安装 --- #### 📁 第二步:准备你的 Python 脚本 例如你有一个脚本叫: ```python # hello.py print("Hello, 我是一个Python程序!") input("按回车键退出...") ``` 保存为 `hello.py`,放在某个目录下,比如 `C:\myapp\hello.py` --- #### 📦 第三步:使用 PyInstaller 打包 进入脚本所在目录: ```bash cd C:\myapp ``` 然后运行打包命令: ```bash pyinstaller hello.py ``` --- ### 🎯 打包方式选择 | 命令 | 说明 | |------|------| | `pyinstaller hello.py` | 默认打包成文件夹(含多个文件) | | `pyinstaller --onefile hello.py` | 打包成单个 `.exe` 文件(推荐) | | `pyinstaller --windowed --onefile gui_app.py` | GUI程序不显示黑框(如 tkinter) | | `pyinstaller --icon=app.ico --onefile hello.py` | 添加自定义图标 | --- ### 🎨 常用参数详解 | 参数 | 作用 | |------|------| | `--onefile` | 所有内容打包进一个 `.exe` 文件 | | `--windowed` | 不弹出控制台窗口(适用于 GUI 程序,如 tkinter、PyQt) | | `--icon=xxx.ico` | 设置 `.exe` 图标(必须是 `.ico` 格式) | | `--name=myapp` | 自定义生成exe 名称 | | `--clean` | 清理缓存,避免异常 | 📌 示例(推荐用于 GUI 程序): ```bash pyinstaller --onefile --windowed --icon=app.ico --name=关机助手 shutdown_app.py ``` 这会生成: - `dist/关机助手.exe` → 可直接双击运行! --- ### 🗂️ 输出目录结构 打包完成后,你会看到以下文件夹: - `dist/` → 最终的 `.exe` 文件在这里 ✅ - `build/` → 临时构建文件(可删除) - `hello.spec` → 打包配置文件(可编辑高级选项) - `__pycache__/`, `*.pyc` 等 → 中间文件 > 💡 最终只需发布 `dist` 目录下的 `.exe` 文件即可! --- ### 🖼️ 如何制作 `.ico` 图标? 1. 在线工具转换:[https://www.favicon.cc/](https://www.favicon.cc/) 或 [https://convertio.co/zh/png-ico/](https://convertio.co/zh/png-ico/) 2. 准备一张图片(建议 256x256 PNG) 3. 转换为 `app.ico` 4. 放在与 `.py` 同一目录下 --- ### ⚠️ 常见问题及解决方法 | 问题 | 解决方案 | |------|----------| | 打包后 exe 运行闪退 | 加上 `input("按回车退出")` 或用日志排查错误 | | 杀毒软件误报 | 属正常现象(因打包机制类似“加壳”),添加信任即可 | | 缺少模块(ModuleNotFoundError) | 手动添加 `--hidden-import=模块名` | | 文件太大(几十MB) | 正常!因为包含了整个 Python 解释器库 | | 黑窗口一直存在 | GUI 程序记得加 `--windowed` 参数 | --- ### 🧪 测试你的 .exe 双击运行 `.exe`,测试功能是否正常。 如果出错,可以右键 → “以管理员身份运行”,或通过命令行启动查看报错信息: ```bash # 在 cmd 中运行,查看详细输出 dist/hello.exe ``` --- ### 📦 其他打包工具对比(了解即可) | 工具 | 特点 | |------|------| | **PyInstaller** | ✅ 最流行,支持多平台,一键打包 | | cx_Freeze | 跨平台,但配置较复杂 | | auto-py-to-exe | 基于 PyInstaller 的图形化界面(适合新手) | | Nuitka | 将 Python 编译为 C++,性能更高但复杂 | 📌 推荐新手使用:**PyInstaller** --- ### ✅ 总结:四步完成打包 1. `pip install pyinstaller` 2. 好 `.py` 文件(如 `app.py`) 3. 运行命令: ```bash pyinstaller --onefile --windowed --icon=app.ico app.py ``` 4. 发布 `dist/app.exe` ---
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值