使用Nginx和PySide6(PyQt)实现程序版本升级

文章详细介绍了如何通过PySide6构建一个简单的程序升级系统,该系统利用Nginx作为升级文件服务器。升级过程包括检查更新、下载新版本和替换旧程序。主程序和升级程序的代码示例分别展示了如何处理这一过程。虽然目前仅考虑了主程序文件的升级,但作者计划扩展到多文件多模块的升级。
摘要由CSDN通过智能技术生成

  我们编写软件的时候,通常都会对软件进行迭代开发,通过程序升级来修复BUG或增加新功能。尽管软件升级的方式各异,但是它们的基本原理都是差不多的,即用新版本的程序文件替换旧版本的程序文件。那么如何实现程序的版本升级呢?

软件升级的一般步骤如下:

  1. 在服务器上发布升级文件,提供升级文件的下载服务。
  2. 软件自动(定时触发)或手动检索服务器,对比当前程序版本号和最新发布的程序版本号,判断当前程序是否需要升级。
  3. 如果发现新版本程序,则询问用户是否下载并更新程序。
  4. 当用户选择下载并更新程序后,启动升级程序并关闭当前主程序。
  5. 升级程序下载升级文件到本地,删除并替换旧程序。
  6. 关闭升级程序,启动新程序。

至此,程序升级完毕。

我用Nginx作为升级文件服务器,用PySide6做了一个升级演示程序。

1、首先修改nginx.conf,在http配置中添加文件下载配置。

    #download
    limit_conn_zone $binary_remote_addr zone=perip:1m;
    autoindex on;               # enable directory listing output
    autoindex_exact_size on;    # output file sizes rounded to kilobytes, megabytes, and gigabytes
    autoindex_localtime on;     # output local times in the directory
    limit_conn perip 1;  		# 每个ip的并发连接数
    limit_rate 1024k;			# 限制下载速度;

2、将升级文件拷贝到nginx存放页面的目录下。

其中升级文件的命名规则是文件名称+版本号,我们用浏览器测试一下。

 

3、启动主程序,当前版本号为1.0.0

 

4、点击“检查更新”按钮,查看服务器上的最新版本。

 

5、点击“下载更新”按钮,启动升级程序。

 

6、下载完成后,确认是否启动主程序。 

7、启动主程序,版本号已经变为1.0.2,升级完成。

 

 

主程序代码如下:

import os
import re
import sys
import time
import traceback
import urllib.request
from packaging.version import Version
from PySide6 import QtCore
from PySide6.QtCore import Slot, Signal, QThread
from PySide6.QtWidgets import QWidget, QVBoxLayout, QApplication, QStyleFactory, QPushButton, QLabel, QHBoxLayout, \
    QSpacerItem, QSizePolicy

APP_VERSION = '1.0.0'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值