本文详细介绍了如何实现软件安装,结合更新到启动的流程,并使用HM NIS Edit制作正式安装包,包含临界区关键词优化,适合软件开发者参考。
—
文章标题:如何实现软件安装?结合更新与启动,打造专业安装包
文章内容:
如何实现软件安装?
在上一篇文章《如何实现软件更新?》中,我们探讨了如何结合更新到启动,实现软件启动时自动更新。这一篇,我们将深入讲解如何让软件像正常应用一样完成安装,同时确保更新机制正常工作。
启动时更新其实非常简单。在上一篇文章中,我们已经用函数`main()`将整个过程封装起来,因此只需在主程序中引入该函数,并放在其他语句的最前面。
# 引入函数
from update import main
# 中间代码省略
...
if __name__ == '__main__':
# 放在最前面
main()
app = MainWindows()
app.mainloop()
使用pyinstaller制作单文件执行最简单的方法是:
pyinstaller -w -F main.py
参数解释:
文件夹方式:
pyinstaller -w main.py
不加-F会直接生成文件夹。
运行命令.gif
打包完成后,会生成一个dist文件夹,打开里面会有一个main文件夹,里面包含main.exe,这就是可执行文件,可双击运行。
运行文件.gif
如果出现错误,可能是更新文件缺失。具体原因可参考《如何实现软件更新?》。由于启动时需要先运行更新,而更新文件依赖json文件,因此启动时会出错。
将更新文件放入文件夹,再次运行即可正常工作。
正常运行.gif
虽然这里的自动更新还有改进空间(针对文件夹的更新机制需要进一步优化),但基本原理相同,读者可根据实际情况调整。
二、如何让软件能够安装
前面的内容是为安装准备的基础。我们选择文件夹形式打包,因为接下来要使用的工具更适合处理文件夹,且文件夹形式通常比单文件更轻量。
使用HM NIS Edit制作专业安装包
HM NIS Edit能制作类似QQ的安装包。以下是具体步骤:
1. 打开HM NIS Edit,点击“文件”→“新建脚本:向导”。
2. 点击“下一步”,填写应用程序信息。
3. 保持默认设置,但将安装程序语言选择为简体中文,避免乱码。
4. 设置默认安装目录,允许用户自定义,并添加授权文件。
5. 修改文件路径,添加程序所在目录,确保子文件夹中的库也能被安装。
6. 保存脚本,自动编译生成安装程序。
授权文件
由于软件依赖子文件夹中的库,我们需要在编译脚本中添加递归复制命令:
# 编译成setup.exe时的操作
Section "MainSection" SEC01
SetOutPath "$INSTDIR"
SetOverwrite ifnewer
File "mainmain.exe"
File /r "main." # 添加递归符号
CreateDirectory "$SMPROGRAMS敦煌工具"
CreateShortCut "$SMPROGRAMS敦煌工具敦煌工具.lnk" "$INSTDIRmain.exe"
CreateShortCut "$DESKTOP敦煌工具.lnk" "$INSTDIRmain.exe"
SectionEnd
# 卸载时的操作
Section Uninstall
Delete "$INSTDIR${PRODUCT_NAME}.url"
Delete "$INSTDIRuninst.exe"
Delete "$INSTDIR."
Delete "$INSTDIRmain.exe"
Delete "$SMPROGRAMS敦煌工具Uninstall.lnk"
Delete "$SMPROGRAMS敦煌工具Website.lnk"
Delete "$DESKTOP敦煌工具.lnk"
Delete "$SMPROGRAMS敦煌工具敦煌工具.lnk"
RMDir "$SMPROGRAMS敦煌工具"
RMDir /r "$INSTDIR."
DeleteRegKey ${PRODUCT_UNINST_ROOT_KEY} "${PRODUCT_UNINST_KEY}"
DeleteRegKey HKLM "${PRODUCT_DIR_REGKEY}"
SetAutoClose true
SectionEnd
三、安装测试
保存脚本后,编译生成setup.exe。双击启动安装程序,流程如下:
1. 启动软件,显示授权文件内容。
2. 选择安装路径,可自定义。
3. 开始安装。
4. 安装完成,可选择运行软件或退出。
5. 桌面和开始菜单会生成卸载工具。
6. 运行软件,测试功能正常。
7. 卸载测试,从安装目录运行卸载工具。
最后
通过以上步骤,我们成功将软件包装成专业安装包。读者可根据实际需求调整设置。如遇问题,可关注公众号“Python与跨境电商”讨论,示例代码已上传至百度网盘,回复关键词“安装软件”获取。
最后编辑于:2020.05.07 12:28:49
©著作权归作者所有,转载或内容合作请联系作者
{1、软件安装} {2、软件更新} {3、HM NIS Edit} {4、临界区} {5、安装包制作} {6、pyinstaller}
本文是基于《怎么实现软件安装?看这篇文章如何结合更新到启动来搞定》的AI重写版本
评论(0)