140 lines
3.7 KiB
Batchfile
140 lines
3.7 KiB
Batchfile
@echo off
|
|
chcp 65001
|
|
setlocal EnableDelayedExpansion
|
|
echo 开始正式版本打包...
|
|
|
|
:: 设置工作目录为脚本所在目录
|
|
cd /d "%~dp0"
|
|
|
|
:: 激活虚拟环境
|
|
if exist ".venv\Scripts\activate.bat" (
|
|
echo 激活虚拟环境...
|
|
call .venv\Scripts\activate.bat
|
|
) else (
|
|
echo 警告: 未找到虚拟环境,使用系统 Python
|
|
)
|
|
|
|
:: 确保安装了必要的包
|
|
echo Installing dependencies...
|
|
pip install -r requirements.txt
|
|
|
|
:: 读取版本号并处理格式
|
|
set /p VERSION=<version.txt
|
|
:: 移除版本号中的所有空格
|
|
set VERSION=!VERSION: =!
|
|
|
|
:: 分解版本号并增加 PATCH 版本
|
|
for /f "tokens=1-3 delims=." %%a in ("!VERSION!") do (
|
|
set MAJOR=%%a
|
|
set MINOR=%%b
|
|
set /a PATCH=%%c+1
|
|
)
|
|
|
|
:: 组合新版本号
|
|
set NEW_VERSION=!MAJOR!.!MINOR!.!PATCH!
|
|
echo Current version: !VERSION!
|
|
echo New version: !NEW_VERSION!
|
|
|
|
:: 保存新版本号
|
|
echo !NEW_VERSION!>version.txt
|
|
|
|
:: 清理旧的打包文件
|
|
echo Cleaning old files...
|
|
taskkill /F /IM "听泉助手*.exe" >nul 2>&1
|
|
timeout /t 2 /nobreak >nul
|
|
if exist "build" rd /s /q "build"
|
|
if exist "dist" rd /s /q "dist"
|
|
|
|
:: 使用优化选项进行打包
|
|
echo Starting packaging...
|
|
pyinstaller ^
|
|
--noconfirm ^
|
|
--clean ^
|
|
--onefile ^
|
|
--noconsole ^
|
|
--icon=two.ico ^
|
|
--name "听泉助手v!NEW_VERSION!" ^
|
|
--hidden-import json ^
|
|
--hidden-import sqlite3 ^
|
|
--hidden-import winreg ^
|
|
--hidden-import ctypes ^
|
|
--hidden-import platform ^
|
|
--hidden-import uuid ^
|
|
--hidden-import hashlib ^
|
|
--hidden-import datetime ^
|
|
--hidden-import urllib3 ^
|
|
--hidden-import requests ^
|
|
--hidden-import PyQt5 ^
|
|
--hidden-import PyQt5.sip ^
|
|
--hidden-import psutil ^
|
|
--hidden-import psutil._psutil_windows ^
|
|
--hidden-import psutil._pswindows ^
|
|
--collect-submodules psutil ^
|
|
--add-data "version.txt;." ^
|
|
--add-data "requirements.txt;." ^
|
|
--add-data "two.ico;." ^
|
|
--add-data "config.py;." ^
|
|
--add-data "logger.py;." ^
|
|
--add-data "common_utils.py;." ^
|
|
--add-data "cursor_token_refresher.py;." ^
|
|
--add-data "machine_resetter.py;." ^
|
|
--add-data "update_disabler.py;." ^
|
|
--add-data "exit_cursor.py;." ^
|
|
--add-data "gui;gui" ^
|
|
--add-data "services;services" ^
|
|
--add-data "utils;utils" ^
|
|
--exclude-module _tkinter ^
|
|
--exclude-module tkinter ^
|
|
--exclude-module PIL.ImageTk ^
|
|
--exclude-module PIL.ImageWin ^
|
|
--exclude-module numpy ^
|
|
--exclude-module pandas ^
|
|
--exclude-module matplotlib ^
|
|
--exclude "__pycache__" ^
|
|
--exclude "*.pyc" ^
|
|
--exclude "*.pyo" ^
|
|
--exclude "*.pyd" ^
|
|
--version-file file_version_info.txt ^
|
|
--uac-admin ^
|
|
tingquan_assistant.py
|
|
|
|
:: 检查打包结果
|
|
set BUILD_FILE=dist\听泉助手v!NEW_VERSION!.exe
|
|
|
|
if exist "!BUILD_FILE!" (
|
|
echo Build completed!
|
|
echo Version: v!NEW_VERSION!
|
|
echo File location: !BUILD_FILE!
|
|
|
|
:: 显示文件大小
|
|
for %%I in ("!BUILD_FILE!") do (
|
|
echo File size: %%~zI bytes
|
|
)
|
|
|
|
:: 更新 main_window.py 中的窗口标题
|
|
set MAIN_WINDOW_FILE=gui\windows\main_window.py
|
|
if exist "!MAIN_WINDOW_FILE!" (
|
|
echo Updating main_window.py...
|
|
powershell -Command "(Get-Content '!MAIN_WINDOW_FILE!') -replace '听泉助手 v\d+\.\d+\.\d+\.\d+', '听泉助手 v!NEW_VERSION!' | Set-Content '!MAIN_WINDOW_FILE!'"
|
|
) else (
|
|
echo Warning: main_window.py not found!
|
|
)
|
|
) else (
|
|
echo Error: Package failed, file does not exist
|
|
echo Expected file: !BUILD_FILE!
|
|
exit /b 1
|
|
)
|
|
|
|
:: 清理临时文件
|
|
echo Cleaning temporary files...
|
|
if exist "build" rd /s /q "build"
|
|
|
|
:: 退出虚拟环境
|
|
if exist ".venv\Scripts\activate.bat" (
|
|
echo Deactivating virtual environment...
|
|
deactivate
|
|
)
|
|
|
|
echo.
|
|
echo Press any key to exit...
|
|
pause >nul |