diff --git a/.trae/skills/pyinstaller-one/SKILL.md b/.trae/skills/pyinstaller-one/SKILL.md new file mode 100644 index 0000000..b260fd9 --- /dev/null +++ b/.trae/skills/pyinstaller-one/SKILL.md @@ -0,0 +1,17 @@ +--- +name: pyinstaller-one +description: 当执行pyinstaller打包的时候,执行这个技能。 +--- + +## 元数据 +name: pyinstaller个性化打包 +description: 打包的时候,要求生成为一个exe文件,使用ico等等 + +## 概述 +此 Skill 用于给有GUI界面的python代码,打包的时候,生成一个统一的要求:生成一个exe文件,去掉控制台窗口,使用本目录下的ico文件作为程序的图标。打包时,如果之前有打包过的文件(dist/build 文件夹),自动覆盖旧文件,不用手动确认,一键打包到底。 + +## 打包命令示例 +pyinstaller --onefile --noconsole --icon=图标文件名.ico --distpath=. --hidden-import=PySide6.Qt6Compat python程序名.py + +## 清除多余文件 +在windows环境下,执行clean.py \ No newline at end of file diff --git a/.trae/skills/pyinstaller-one/clean.py b/.trae/skills/pyinstaller-one/clean.py new file mode 100644 index 0000000..268139a --- /dev/null +++ b/.trae/skills/pyinstaller-one/clean.py @@ -0,0 +1,17 @@ +import os +import shutil +import glob +import subprocess + +# 2. 清理打包残留文件 等价:rd /s /q build + del /f *.spec +print("开始清理打包残留文件...") +# 删除build文件夹 +if os.path.exists("build") and os.path.isdir("build"): + shutil.rmtree("build") +# 删除所有.spec文件 +spec_files = glob.glob("*.spec") +for spec_file in spec_files: + if os.path.exists(spec_file): + os.remove(spec_file) + +print("✅ 打包完成 + 残留文件清理完毕!exe文件已生成在当前目录") \ No newline at end of file diff --git a/main.exe b/main.exe new file mode 100644 index 0000000..29b3e48 Binary files /dev/null and b/main.exe differ diff --git a/main.py b/main.py index fcdbc31..38af677 100644 --- a/main.py +++ b/main.py @@ -274,6 +274,10 @@ def setup_logging(log_path: str, level: str = "INFO"): """配置日志""" logger.remove() # 移除默认的处理器 + # 确保log_path不为None + if log_path is None: + log_path = 'guba.log' + logger.add( log_path, rotation="10 MB", @@ -283,11 +287,13 @@ def setup_logging(log_path: str, level: str = "INFO"): format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}" ) - logger.add( - sys.stdout, - level=level, - format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}" - ) + # 仅当sys.stdout可用时才添加控制台日志 + if sys.stdout is not None: + logger.add( + sys.stdout, + level=level, + format="{time:YYYY-MM-DD HH:mm:ss} | {level: <8} | {name}:{function}:{line} - {message}" + ) def main(): @@ -304,8 +310,10 @@ def main(): # 配置日志 log_config = config.logging_config - setup_logging(log_config.get('path', 'guba.log'), log_config.get('level', 'INFO')) - logger.info(f"日志配置完成: {log_config.get('path', 'guba.log')}, 级别: {log_config.get('level', 'INFO')}") + log_path = log_config.get('path') or 'guba.log' + log_level = log_config.get('level') or 'INFO' + setup_logging(log_path, log_level) + logger.info(f"日志配置完成: {log_path}, 级别: {log_level}") # 初始化组件 logger.info("初始化数据库...") diff --git a/screenshots/sse_page_20260109_173924.png b/screenshots/sse_page_20260109_173924.png deleted file mode 100644 index 177b6d4..0000000 Binary files a/screenshots/sse_page_20260109_173924.png and /dev/null differ diff --git a/screenshots/sse_page_20260109_174348.png b/screenshots/sse_page_20260109_174348.png deleted file mode 100644 index 177b6d4..0000000 Binary files a/screenshots/sse_page_20260109_174348.png and /dev/null differ diff --git a/sse_screenshot.png b/sse_screenshot.png index d9ef3ad..0075ef8 100644 Binary files a/sse_screenshot.png and b/sse_screenshot.png differ