修复:
- 打包路径兼容 Nuitka:识别 __compiled__,无 sys._MEIPASS 时回退 __file__ 所在目录(onefile 解压临时目录);新增 build_nuitka.bat(PyQt5 插件、内置 config.json、输出名不变)
This commit is contained in:
+5
-4
@@ -28,11 +28,12 @@ C_TEXT = "#333333" # 正文
|
|||||||
C_SUBTEXT = "#889099" # 次要文字
|
C_SUBTEXT = "#889099" # 次要文字
|
||||||
|
|
||||||
# ── 路径 ──────────────────────────────────────────────
|
# ── 路径 ──────────────────────────────────────────────
|
||||||
# frozen=True 表示已被 PyInstaller 打包为 EXE:
|
# 已被打包为 EXE(PyInstaller 的 sys.frozen / Nuitka 的 __compiled__):
|
||||||
# BASE_DIR -> EXE 解压出的临时目录(_MEIPASS)
|
# BASE_DIR -> 内置数据目录:PyInstaller 用 _MEIPASS,Nuitka onefile 用
|
||||||
|
# __file__ 所在解压临时目录(无 _MEIPASS 时回退)
|
||||||
# PERSIST_DIR -> EXE 所在目录,服务安装等需要持久化的操作都放这里
|
# PERSIST_DIR -> EXE 所在目录,服务安装等需要持久化的操作都放这里
|
||||||
if getattr(sys, 'frozen', False):
|
if getattr(sys, 'frozen', False) or "__compiled__" in globals():
|
||||||
BASE_DIR = Path(sys._MEIPASS)
|
BASE_DIR = Path(getattr(sys, "_MEIPASS", None) or Path(__file__).resolve().parent)
|
||||||
PERSIST_DIR = Path(sys.executable).resolve().parent
|
PERSIST_DIR = Path(sys.executable).resolve().parent
|
||||||
else:
|
else:
|
||||||
BASE_DIR = Path(__file__).resolve().parent
|
BASE_DIR = Path(__file__).resolve().parent
|
||||||
|
|||||||
Reference in New Issue
Block a user