Skip to content

Commit 4a919b6

Browse files
committed
fix: 开发模式启动失败
1 parent e677298 commit 4a919b6

1 file changed

Lines changed: 10 additions & 4 deletions

File tree

aao/app.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -411,11 +411,17 @@ def _ensure_admin() -> None:
411411
except (AttributeError, OSError):
412412
return
413413

414-
# 重新以管理员身份启动自己,只带原参数(不含 argv[0]=自身路径,避免重复)
415-
args = sys.argv[1:]
414+
frozen = getattr(sys, "frozen", False)
415+
if frozen:
416+
# 打包 exe:重启自身,只带原参数(不含 argv[0]=自身路径,避免重复)
417+
args = sys.argv[1:]
418+
work_dir = os.path.dirname(os.path.abspath(sys.executable))
419+
else:
420+
# 开发模式:`uv run python -m aao.app` 时 sys.argv 不包含 `-m aao.app`,
421+
# 提权后必须显式补上模块入口,否则只会打开 python 交互 REPL。
422+
args = ["-m", "aao.app", *sys.argv[1:]]
423+
work_dir = os.getcwd()
416424
params = " ".join(f'"{a}"' for a in args)
417-
# 工作目录用 exe 所在目录(否则 UAC 提权后默认 system32,资源找不到)
418-
work_dir = os.path.dirname(os.path.abspath(sys.executable))
419425
try:
420426
rc = ctypes.windll.shell32.ShellExecuteW( # pyright: ignore[reportAttributeAccessIssue]
421427
None, "runas", sys.executable, params, work_dir, 1

0 commit comments

Comments
 (0)