📜  windows 升级包 - Python (1)

📅  最后修改于: 2023-12-03 15:21:10.826000             🧑  作者: Mango

Windows 升级包 - Python

本文将介绍如何使用 Python 编写 Windows 升级包。升级包的作用是更新现有软件,修复漏洞,增加新功能等等。使用 Python,我们可以轻松创建一个可自动更新的应用程序。

必要工具
  • Python 3
  • pyinstaller:生成可执行文件
  • Inno Setup:创建安装程序
安装 pyinstaller

在命令行中输入以下命令安装 pyinstaller:

pip install pyinstaller
安装 Inno Setup

Inno Setup 官网下载最新版本的Inno Setup,并按照安装向导的指示进行安装。

创建升级包

我们将使用 PyInstaller,Inno Setup 和 GitHub Actions 创建升级包。

Step 1:创建 Python 应用程序

在编写代码之前,你需要明确应用程序的功能和安装需要的依赖项。这里以一个简单的 Python GUI 应用程序为例:

import tkinter as tk
  
window = tk.Tk()
window.title("My Python GUI")
window.geometry("300x200")

label = tk.Label(text="Hello, World!", font=("Helvetica", 20))
label.pack(pady=50)

window.mainloop()
Step 2:生成可执行文件

使用以下命令生成一个可执行文件:

pyinstaller --onefile python_gui.py

此命令将生成一个名为 python_gui.exe 的可执行文件,它自包含了所有应用程序文件和依赖项,可以在 Windows 上独立运行。

Step 3:创建 Inno Setup 脚本

创建一个 .iss 文件,用于打包和安装应用程序。以下是一个基本的示例文件:

[Setup]
AppName=Python GUI
AppVersion=1.0
DefaultDirName={pf}\Python GUI
OutputDir=.\dist
OutputBaseFilename=Python_GUI_Setup
Compression=lzma2
SolidCompression=yes

[Files]
Source: ".\python_gui.exe"; DestDir: "{app}"; Flags: ignoreversion

[Icons]
Name: "{group}\Python GUI"; Filename: "{app}\python_gui.exe"
Step 4:在 GitHub Actions 中自动构建升级包

在你的 GitHub 项目中,创建一个名为 .github/workflows/main.yaml 的文件,然后将以下内容添加到该文件中:

name: "Build Windows Installer"

on:
  push:
    branches:
      - main

jobs:
  build-installer:
    runs-on: windows-latest
    steps:
    - name: Checkout
      uses: actions/checkout@v2
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install pyinstaller
        wget -q https://jrsoftware.org/download.php/is.exe -O inno-setup.exe
    - name: Build Python application
      run: pyinstaller --onefile python_gui.py
    - name: Create Windows installer
      run: |
        .\inno-setup.exe /Q /O".\dist" ".\python_gui.iss"
    - name: Upload artifacts
      uses: actions/upload-artifact@v2
      with:
        name: Python_GUI_Setup
        path: dist/Python_GUI_Setup.exe

在以上示例中,我们定义了一个名为 build-installer 的工作流程,该工作流程将在项目被推送到主分支时执行。它使用 pyinstaller 和 Inno Setup 分别生成可执行文件和安装程序。最后,它将安装程序作为作品上传。

结论

使用 Python,PyInstaller 和 Inno Setup,我们可以轻松地构建 Windows 升级包,使我们的应用程序自动更新和升级。通过 GitHub Actions,我们可以自动化升级包的构建和发布过程,从而加快软件开发的速度和效率。