From c8985f1a85599959aba0de91ddebcdc17f561e88 Mon Sep 17 00:00:00 2001 From: hyb-oyqq <1512383570@qq.com> Date: Wed, 23 Jul 2025 22:34:24 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=92=8C=E4=BC=98=E5=8C=96=E8=B5=84=E6=BA=90?= =?UTF-8?q?=E8=B7=AF=E5=BE=84=E8=8E=B7=E5=8F=96=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将应用版本更新至 1.1.2 - 修改资源路径获取函数的文档,支持 Nuitka 打包环境 - 优化特殊可执行文件和数据文件的路径处理逻辑 --- source/data/config.py | 2 +- source/utils/helpers.py | 23 +++++++++++------------ 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/source/data/config.py b/source/data/config.py index eb961ab..c7ca9e2 100644 --- a/source/data/config.py +++ b/source/data/config.py @@ -3,7 +3,7 @@ import base64 # 配置信息 app_data = { - "APP_VERSION": "1.1.1", + "APP_VERSION": "1.1.2", "APP_NAME": "FRAISEMOE Addons Installer NEXT", "TEMP": "TEMP", "CACHE": "FRAISEMOE", diff --git a/source/utils/helpers.py b/source/utils/helpers.py index ad6eeb2..b5d580b 100644 --- a/source/utils/helpers.py +++ b/source/utils/helpers.py @@ -13,22 +13,21 @@ from data.pic_data import img_data from data.config import APP_NAME, CONFIG_FILE def resource_path(relative_path): - """获取资源的绝对路径,适用于开发环境和PyInstaller打包环境""" + """获取资源的绝对路径,适用于开发环境和Nuitka打包环境""" if getattr(sys, 'frozen', False): - # PyInstaller创建的临时文件夹,并将路径存储在_MEIPASS中 - base_path = getattr(sys, '_MEIPASS', os.path.dirname(sys.executable)) + # Nuitka/PyInstaller创建的临时文件夹,并将路径存储在_MEIPASS中或与可执行文件同目录 + if hasattr(sys, '_MEIPASS'): + base_path = sys._MEIPASS + else: + base_path = os.path.dirname(sys.executable) else: # 在开发环境中运行 - base_path = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) - # 现在base_path是项目根目录,我们需要进入source目录 - base_path = os.path.join(base_path, 'source') - - # 处理特殊情况 - if relative_path == "aria2c.exe": + base_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "..")) + + # 处理特殊的可执行文件和数据文件路径 + if relative_path in ("aria2c.exe", "cfst.exe"): return os.path.join(base_path, 'bin', relative_path) - elif relative_path == "cfst.exe": - return os.path.join(base_path, 'bin', relative_path) - elif relative_path == "ip.txt" or relative_path == "ipv6.txt": + elif relative_path in ("ip.txt", "ipv6.txt"): return os.path.join(base_path, 'resources', 'data', relative_path) return os.path.join(base_path, relative_path)