当前位置:首页>python>Python Nuitka将Python代码打包成.exe 的方法,很实用

Python Nuitka将Python代码打包成.exe 的方法,很实用

  • 2026-10-21 13:28:43
Python Nuitka将Python代码打包成.exe 的方法,很实用

Python 脚本需打包为 exe 以分发给无环境用户。Nuitka 将 Python 编译为 C++ 再生成二进制文件,性能优于 PyInstaller,更高效、安全。

往期阅读>>

Python 为什么会成为AI时代的头部语言

Python 40个常用的列表推导式

Python 50个提高代码开发效率的方法

Python 自动检测服务HTTPS证书过期时间并发送预警

Python 自动化操作Redis的15个实用脚本

Python 自动化管理Jenkins的15个实用脚本,提升效率

Python copyparty搭建轻量的文件服务器的方法

Python 实现2FA认证的方法,提升安全性

Python 封装20个常用API接口,提升开发效率

App2Docker:如何无需编写Dockerfile也可以创建容器镜像

Python 集成 Nacos 配置中心的方法

Python 35个JSON数据处理方法

Python 字典与列表的20个核心技巧

Python 15个文本分析的库,提升效率

Python 15个Pandas技巧,提升数据分析效率

Python 运维中30个常用的库,提升效率

Python调用远程接口的方法

Python 提取HTML文本的方法,提升效率

Python 应用容器化方法:实现“一次部署,处处运行”

Python 自动化识别Nginx配置并导出为excel文件,提升Nginx管理效率

Python 5个常见的异步任务处理框架

Python数据科学常见的30个库

Python 50个实用代码片段,优雅高效

一、Nuitka 优势

  • 编译机制:Python → C++ → 二进制

  • 性能高:接近原生

  • 启动快:无解包

  • 保护强:源码难反编

  • 依赖小:无需完整解释器

项目NuitkaPyInstaller
机制编译为原生打包+解释器
性能高一般
启动速度快慢
安全性强弱
打包速度慢快

适合性能、安全要求高的项目。


二、安装

pip install nuitka

Windows 需 C++ 编译器(如 VS Build Tools 或 MinGW-w64)。

验证:

nuitka --version

三、使用

基本命令

nuitka hello.py

常用选项

选项说明
--onefile单文件
--windows-disable-console隐藏控制台
--windows-icon=icon.ico设置图标
--output-dir=dist输出目录
--remove-output清理失败临时文件

示例:

nuitka --onefile --windows-disable-console --windows-icon=app.ico app.py

四、示例

1. 控制台程序

def main():    name = input("输入名字: ")    print(f"你好,{name}!")    input("按回车退出...")if __name__ == "__main__":    main()

打包:

nuitka --onefile greet.py

2. GUI 程序(Tkinter)

import tkinter as tkfrom tkinter import messageboxdef on_click():    messagebox.showinfo("提示", "Nuitka 成功!")app = tk.Tk()app.title("Nuitka 示例")label = tk.Label(app, text="点击按钮测试")label.pack(pady=20)button = tk.Button(app, text="点击我", command=on_click)button.pack()app.mainloop()

打包:

nuitka --onefile --windows-disable-console gui_app.py

五、常见问题

1. 找不到资源文件

nuitka --onefile --include-data-file=logo.png=assets/logo.png app.py

路径获取:

import os, sysdef get_resource_path(filename):    return os.path.join(sys._MEIPASS, filename) if hasattr(sys, '_MEIPASS') else filename

2. 加速打包

nuitka --onefile --lto=yes app.py

3. 查看日志

nuitka --verbose app.py

Nuitka 是高性能打包的首选——它让程序跑得更快,启动更迅,防护更牢;虽打包过程稍慢,却以质量取胜,以安全立身,以性能服人,值得在关键项目中托付信任。

优势说明
性能高原生运行
安全强难反编译
启动快无解包
多平台Win/Linux/macOS
“无他,惟手熟尔”!有需要的用起来!
如果你觉得这篇文章有用,欢迎点赞、转发、收藏、留言、推荐❤!

想高效学习Python?下面三本精选好书满足你的不同需求!

《流畅的Python(第2版)》——Python进阶必读!深入讲解高级特性与最佳实践,适合想精进的开发者。

《Python从新手到高手》:初学者首选,79元系统学习全栈技能。

《Python数据分析:从零基础入门到案例实战》——数据科学利器!手把手教你用Python处理数据,实战案例学完就能用。

三本书均支持先用后付、运费险和7天无理由退货,放心购买!点击“购买”按钮,立即开启你的Python学习之旅吧!

▼点击下方,即可购书
------加入知识场与更多人一起学习------

https://ima.qq.com/wiki/?shareId=f2628818f0874da17b71ffa0e5e8408114e7dbad46f1745bbd1cc1365277631c

https://ima.qq.com/wiki/?shareId=66042e013e5ccae8371b46359aa45b8714f435cc844ff0903e27a64e050b54b5

最新文章

随机文章