安装包美化之路-nsNiuniuSkin安装包环境准备与快速打包

前面我们已经介绍过全新安装包 UI 的制作与预览方法。界面做好之后,接下来就是把打包环境准备好,将自己的程序文件放进去,真正生成可以安装和卸载的 Windows 安装包。

这篇文章从一台新电脑开始,依次准备 Python、Tkinter 和 Node.js,再以 leeqia_drink 喝水模板为例,介绍如何预览界面、如何通过脚本一键打包,以及如何使用可视化配置向导完成打包。

下面的操作都以完整的 nsNiuniuSkin Release 交付目录为基础。建议先完整解压,不要只复制其中的 SetupScripts 目录,也尽量不要放在层级过深或包含特殊字符的路径中。

一、准备 Python 3.10 或以上版本

nsNiuniuSkin 的打包脚本和可视化配置向导会使用 Python。请安装 Python 3.10 或以上版本,Windows 用户可以从 Python 官网下载安装:

Python 官方下载页面

安装时建议勾选安装器中的"Add Python to PATH"。如果安装时没有勾选,也可以在安装完成后手工配置环境变量。

1. 把 Python 和 pip 加入 PATH

需要加入 PATH 的通常是下面两个目录:

复制代码
C:\Users\<用户名>\AppData\Local\Programs\Python\Python310\
C:\Users\<用户名>\AppData\Local\Programs\Python\Python310\Scripts\

第一行是 python.exe 所在目录,第二行是 pip.exe 所在目录。实际路径会随 Python 版本和安装位置变化,请以自己电脑中的文件位置为准。

在 Windows 中打开"系统属性 -> 高级 -> 环境变量",编辑用户变量或系统变量中的 Path,分别加入这两个目录。保存后要重新打开 PowerShell 或命令提示符,再执行:

复制代码
python --version
python -m pip --version

两条命令都能正常显示版本,才说明 Python 与 pip 已经可以被打包脚本找到。推荐在后续命令中使用 python -m pip,这样可以确保 pip 与当前执行的 Python 属于同一套环境。

2. 已有 Conda 环境也可以直接使用

如果电脑上已经安装了 Anaconda 或 Miniconda,不一定要再安装一套独立 Python。可以新建或激活一个 Python 3.10 以上的环境,例如:

复制代码
conda create -n nsniuniuskin python=3.10
conda activate nsniuniuskin
python --version
python -m pip --version

使用 Conda 时,每次打包前先激活对应环境即可。不要同时混用多个 Python 的 python.exe 和 pip.exe;如果排查版本问题,可以执行 where python 和 where pip,确认当前命令实际指向哪里。

3. 准备 Tkinter 可视化组件

可视化打包 UI 使用 Tkinter。按现有环境准备方式,可以先执行:

复制代码
python -m pip install tk

需要注意,Tkinter 是 Python 的标准图形界面接口,Windows 官方 Python 安装包通常已经包含 Tcl/Tk 和 Tkinter。pip install tk 是否执行成功,不能代替实际验证。安装或确认完成后,请运行:

复制代码
python -m tkinter

如果弹出一个 Tk 测试窗口,说明可视化配置向导需要的组件已经可用。如果提示缺少 _tkinter 或无法启动窗口,请重新运行 Python 官方安装器,选择"Modify",确认 Tcl/Tk 和 IDLE 组件已经安装,而不是只反复执行 pip 命令。

Tkinter 的官方说明也可以在这里查看:

Python Tkinter 官方文档

二、准备 Node.js 22 或以上版本

drink 模板的界面使用新的 HTML、JavaScript UI 引擎,安装依赖和构建皮肤时需要 Node.js。请安装 Node.js 22 或以上版本;为了与当前 drink 模板保持一致,建议使用 22.22.0 或以上版本。

Node.js 官方下载页面

安装完成后重新打开 PowerShell,执行:

复制代码
node --version
npm --version

能够分别看到 Node.js 与 npm 的版本号,说明环境准备完成。若系统中安装过多个 Node.js 版本,请用 where node 和 where npm 检查当前生效路径。

三、先预览 drink 安装包 UI

环境准备好以后,建议不要急着生成正式安装包,先把 drink 模板的安装和卸载流程预览一遍。这样可以提前检查页面、文案、按钮、动画和进度联动,修改 UI 时也不需要每次都完整打包。

drink 模板的欢迎页如下。左侧是鹈鹕喝水场景,右侧保留产品信息、快速安装、自定义选项和许可协议入口。

第一次使用时,在 Release 根目录打开 PowerShell,执行:

复制代码
npm.cmd --prefix .\SetupScripts\leeqia_drink\skin ci
.\debugger\run.bat leeqia_drink

第一条命令安装界面依赖,首次使用或依赖清单更新后执行即可;第二条命令构建并打开预览。也可以直接双击:

复制代码
SetupScripts\leeqia_drink\run_test.bat

预览环境不会真的向系统中安装或卸载文件,适合快速检查 UI。完整的页面切换、指定进度、卸载流程和失败场景调试方法,可以继续查看上一篇文章:

安装包UI美化之路-nsNiuniuSkin全新UI调试与预览方法

下面是 drink 模板从欢迎页进入安装过程的完整效果。安装开始后,水瓶中的水量会跟随进度变化。

预览只能检查界面和模拟流程,不能代替真实打包后的安装、覆盖安装与卸载测试。UI 确认无误后,再继续下面的打包步骤。

四、以 drink 为例一键打包

如果 drink 项目的产品信息、安装逻辑和输出名称已经配置好,最快的方法就是使用交付目录中的一键打包脚本。

打包前先完成三项检查:

  1. 把需要安装的程序文件放入 Release 根目录下的 FilesToInstall。
  2. 检查 SetupScripts\leeqia_drink\soft_setup.nsi 中的产品名称、版本号、主程序名、默认安装目录和发布者信息。
  3. 正式打包时确认测试延时已关闭,并根据实际发布环境决定是否启用代码签名。

在 Release 根目录执行:

复制代码
.\build-leeqia_drink.bat

也可以在资源管理器中直接双击 build-leeqia_drink.bat。脚本会准备 drink 皮肤资源与语言文件,处理待安装文件,调用 NSIS 编译,最终把安装包输出到:

复制代码
Output\

输出文件名以脚本和当前项目配置为准。打包完成后不要只看控制台最后一行,还要进入 Output 检查文件是否确实生成,并确认文件时间与本次打包一致。

drink 安装进行中的界面如下。正式安装包中,除了检查动画和进度,还要验证文件写入、注册表、快捷方式、主程序启动和卸载清理是否符合预期。

如果打包脚本提示找不到 python、node 或 npm,先回到前两节检查 PATH 和当前终端中的版本,不要急着修改公共打包脚本。

五、以 drink 为例使用可视化 UI 打包

如果是第一次配置产品参数,或者不熟悉 package.py 的命令行参数,可以使用 nsNiuniuSkin 自带的可视化配置向导。在 Release 根目录执行或双击:

复制代码
.\gui_package.bat

向导会使用 Tkinter 打开打包配置界面。下图是 leeqia_drink 模板已经载入配置后的实际界面:上方管理配置,中间设置打包控制参数和产品宏,底部可以保存脚本、生成安装包、运行安装包或预览 UI。

以 drink 为例,可以按下面的顺序操作:

  1. 在配置名称中填写 leeqia_drink_gui,点击"新建配置"。
  2. 在项目名称中填写 leeqia_drink,点击"从 nsi 导入默认值"。
  3. 选择打包模式。普通离线包一般选择 7z;快速本地测试也可以根据交付版本提供的选项选择 nozip。
  4. 检查是否签名、本地文件目录、源目录和卸载文件名。待安装文件默认放在 FilesToInstall。
  5. 填写产品名称、英文产品名称、版本号、主程序名、安装包名称、安装路径、注册表标识、发布者与版权信息。
  6. 点击"保存配置及脚本"。向导会保存当前配置,并生成对应的 generate_*.bat 脚本,便于以后重复打包或接入自动化流程。
  7. 点击"生成安装包",等待脚本完成,然后到 Output 目录检查结果。

下面的录屏同样以 leeqia_drink 为例,展示了启动可视化向导、载入 drink 项目参数并执行相关操作的过程。

可视化向导并没有绕开命令行打包流程,它会把界面中填写的参数转换为 Python 打包参数和批处理脚本。因此,第一次可以用向导理解和保存配置;后续版本发布时,可以直接运行生成的脚本,把版本号、待安装目录等少量变化接入自己的自动化流程。

六、打包完成后的检查

不论使用一键脚本还是可视化 UI,生成安装包后都建议至少检查下面几项:

  1. 安装包能否正常启动,产品名称、版本、图标和发布者是否正确。
  2. 欢迎页、许可协议、自定义安装、安装中、完成页是否完整显示。
  3. 安装目录、桌面快捷方式、开始菜单和开机启动选项是否符合配置。
  4. 主程序文件是否全部写入,安装完成后能否正常启动。
  5. 再次安装时能否正确识别旧版本或执行覆盖安装。
  6. 卸载流程是否完整,且不会删除安装目录之外的文件或需要保留的用户数据。
  7. 正式发布前是否已经完成安装包与卸载程序的代码签名。

到这里,从 Python、Tkinter、Node.js 环境准备,到 drink 模板预览、一键打包和可视化打包的流程就已经串起来了。环境只需要准备一次,项目配置也可以保存复用;以后更新程序文件和版本号,就能更快生成新的安装包。

愿天下没有难做的安装包!

相关推荐
大蓝头7 天前
安装包UI美化之路-nsNiuniuSkin全新UI调试与预览方法
ui·electron·安装包·截图控件·截屏控件
大蓝头13 天前
安装包UI美化之路-借助AI快速使用nsNiuniuSkin制作安装包
ui·安装包·nsis·安装包美化·nsniuniuskin
007张三丰4 个月前
软件安装包制作工具推荐和比较
pyinstaller·打包·clickonce·安装包制作·inno setup·nsis·installer
胡斌附体6 个月前
Windows 打包方式与 exe图标说明
windows·electron·exe·package·build·nsis
toobeloong6 个月前
旧版Electron打包时让logset有效
electron·nsis
lhxcc_fly7 个月前
1.LangChain--安装篇
langchain·安装包
人还是要有梦想的8 个月前
QT程序制作安装包
安装包
zsd_318 个月前
npm指定本地缓存、安装包、仓库路径
前端·缓存·npm·node.js·私服·安装包·本地
YFLICKERH10 个月前
【Linux系统】安装包 deb | rpm
linux·运维·安装包