From c9a6133be940b4a7ccd4d2422bfec969964a1b37 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Fri, 6 Feb 2026 14:02:14 +0800 Subject: [PATCH] =?UTF-8?q?fix(logger):=20=E4=BF=AE=E5=A4=8DPyInstaller?= =?UTF-8?q?=E6=89=93=E5=8C=85=E5=90=8E=E7=9A=84=E6=97=A5=E5=BF=97=E7=9B=AE?= =?UTF-8?q?=E5=BD=95=E8=B7=AF=E5=BE=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加sys.frozen判断来区分打包环境和开发环境 - 打包环境下使用sys.executable所在目录作为日志目录 - 开发环境下继续使用当前文件所在目录作为日志目录 - 防止打包后日志文件随临时解压目录丢失的问题 --- index.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/index.py b/index.py index 642ed0b..d010cb5 100644 --- a/index.py +++ b/index.py @@ -56,8 +56,12 @@ def setup_logging(): console_handler.setFormatter(formatter) root_logger.addHandler(console_handler) - # 确保日志文件所在目录存在 - log_dir = os.path.dirname(os.path.abspath(__file__)) + # 确定日志目录:PyInstaller 打包后 __file__ 指向临时解压目录,日志会随之丢失 + # 使用 sys.frozen 判断是否为打包环境,打包后取 exe 所在目录 + if getattr(sys, 'frozen', False): + log_dir = os.path.dirname(sys.executable) + else: + log_dir = os.path.dirname(os.path.abspath(__file__)) # 2. 所有日志文件handler(all_log.log) all_log_path = os.path.join(log_dir, 'all_log.log')