python杂识--24--Nuitak打包exe

./SUSA-SRA

--statistics.py

--ui.py

--icon.ico

先不加任何额外参数直接打包:

python -m nuitka --standalone --enable-plugin=pyside6 --windows-disable-console --windows-icon-from-ico=icon.ico --include-data-files=config.ini=config.ini --output-filename=SUSA-SRA.exe --output-dir=build ui.py

打包完运行 exe,看出什么错再补:

报错 补救参数

ModuleNotFoundError: No module named 'pandas' --include-package=pandas

ModuleNotFoundError: No module named 'openpyxl' --include-package=openpyxl

Qt 插件缺失(图片不显示等) --enable-plugin=pyside6 已覆盖,一般不会出现

某库的数据文件找不到 --include-package-data=包名

Nuitka 对第三方库的处理:

大多数情况不需要手动指定。 Nuitka 会自动分析 ui.py 和 statistics.py 的 import 语句,递归发现所有依赖并打包。

什么情况下需要手动加

情况 原因 解决方式

动态导入(importlib.import_module) Nuitka 静态分析看不到 --include-package=包名

运行时按字符串加载(插件机制) 同上 --include-package=包名

C 扩展库有额外数据文件 Nuitka 可能漏掉 --include-package-data=包名

纯解释型库(无 .pyd/.so) 有时检测不到 --include-package=包名

补全后的命令示例(假设 statistics.py 用了 pandas + openpyxl):

python -m nuitka --standalone --enable-plugin=pyside6 --windows-disable-console --windows-icon-from-ico=icon.ico --include-data-files=config.ini=config.ini --include-package=pandas --include-package=openpyxl --output-filename=SUSA-SRA.exe --output-dir=build ui.py

打包后直接把整个 ui.dist 文件夹分发即可:

ui.dist/

├── SUSA-SRA.exe

├── config.ini ← 用户直接编辑这个

└── ...

standalone(文件夹) onefile(单文件)

config.ini 位置 exe 同级,固定路径 临时目录,每次变

用户可编辑 直接改 改不了(临时目录)

分发方式 发整个文件夹 发一个 exe

启动速度 快(无需解包) 略慢(每次解包)

相关推荐
starzy19908 小时前
深入理解Scala可变Map:动态构建场景下的性能与设计权衡
开发语言·scala
小小张说故事9 小时前
Python 的 a[1:5:2] 到底切出了什么?拆开 slice 对象、__getitem__ 与负步长那次反向
python
wuyk5559 小时前
PyQt6-第15讲-数据可视化QChart
python·ui·信息可视化·pyqt
天天被压力9 小时前
【A股分钟级高频数据完全手册 #04】指数分钟级行情数据接口:沪深指数Pro版最新分时取数
java·人工智能·python
日日大王学编程9 小时前
2026主流AI Agent产品分类、核心差异与技术特性全解析
人工智能·后端·python
天天被压力9 小时前
【A股分钟级高频数据完全手册 #03】股票历史1分钟K线数据接口怎么用:Pro版批量拉取与本地缓存
java·人工智能·python
zhanghaha13149 小时前
C# 系列教程_7 判断语句(分支)保姆级精讲
开发语言·c#
apcipot_rain9 小时前
C++转Java日记(02)
java·开发语言·c++
杜 硕10 小时前
从零开始的C++生活——第七讲——02
开发语言·c++·生活
zhanghaha131410 小时前
C# 系列教程_8 循环语句 保姆级精讲(面向新手)
开发语言·c#