首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Python Nuitka将Python代码打包成.exe 的方法,很实用

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

作者头像
用户11081884
发布2026-07-20 19:23:30
发布2026-07-20 19:23:30
1670
举报

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

一、Nuitka 优势

  • 编译机制Python → C++ → 二进制
  • 性能高:接近原生
  • 启动快:无解包
  • 保护强:源码难反编
  • 依赖小:无需完整解释器

项目

Nuitka

PyInstaller

机制

编译为原生

打包+解释器

性能

一般

启动速度

安全性

打包速度

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


二、安装

代码语言:javascript
复制
pip install nuitka

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

验证:

代码语言:javascript
复制
nuitka --version

三、使用

基本命令

代码语言:javascript
复制
nuitka hello.py

常用选项

选项

说明

--onefile

单文件

--windows-disable-console

隐藏控制台

--windows-icon=icon.ico

设置图标

--output-dir=dist

输出目录

--remove-output

清理失败临时文件

示例:

代码语言:javascript
复制
nuitka --onefile --windows-disable-console --windows-icon=app.ico app.py

四、示例

1. 控制台程序

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

打包:

代码语言:javascript
复制
nuitka --onefile greet.py

2. GUI 程序(Tkinter)

代码语言:javascript
复制
import tkinter as tk
from tkinter import messagebox

def 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()

打包:

代码语言:javascript
复制
nuitka --onefile --windows-disable-console gui_app.py

五、常见问题

1. 找不到资源文件

代码语言:javascript
复制
nuitka --onefile --include-data-file=logo.png=assets/logo.png app.py

路径获取:

代码语言:javascript
复制
import os, sys
def get_resource_path(filename):
    return os.path.join(sys._MEIPASS, filename) if hasattr(sys, '_MEIPASS') else filename

2. 加速打包

代码语言:javascript
复制
nuitka --onefile --lto=yes app.py

3. 查看日志

代码语言:javascript
复制
nuitka --verbose app.py

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

优势

说明

性能高

原生运行

安全强

难反编译

启动快

无解包

多平台

Win/Linux/macOS

“无他,惟手熟尔”!有需要的用起来!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-01-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Nicholas与Pypi 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、Nuitka 优势
  • 二、安装
  • 三、使用
    • 基本命令
    • 常用选项
  • 四、示例
    • 1. 控制台程序
    • 2. GUI 程序(Tkinter)
  • 五、常见问题
    • 1. 找不到资源文件
    • 2. 加速打包
    • 3. 查看日志
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档