fix: Windows 下子进程 python3 命令不存在的问题

Windows 上没有 python3 命令,只有 python。使用 sys.executable
作为当前 Python 可执行文件路径,兼容 Windows 和 Linux/Mac。

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-05-22 18:16:56 +08:00
parent f61f74a4cd
commit a8b490eea3
+7 -4
View File
@@ -32,6 +32,9 @@ if hasattr(sys.stdout, 'buffer'):
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='replace', line_buffering=True) sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8', errors='replace', line_buffering=True)
sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8', errors='replace', line_buffering=True) sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8', errors='replace', line_buffering=True)
# 当前 Python 可执行文件(Windows 用 python.exeLinux/Mac 用 python3
PYTHON = sys.executable
# ============================================================================ # ============================================================================
# 配置 # 配置
# ============================================================================ # ============================================================================
@@ -212,7 +215,7 @@ def deploy_backend():
log_info("执行后端部署...") log_info("执行后端部署...")
ok, _, err = run_command( ok, _, err = run_command(
"python3 deploy.py remote", f"{PYTHON} deploy.py remote",
cwd=str(PROJECT_DIR / "backend-single"), cwd=str(PROJECT_DIR / "backend-single"),
timeout=600, timeout=600,
capture=False capture=False
@@ -240,7 +243,7 @@ def deploy_frontend():
log_info("执行前端部署...") log_info("执行前端部署...")
ok, _, err = run_command( ok, _, err = run_command(
"python3 deploy.py", f"{PYTHON} deploy.py",
cwd=str(PROJECT_DIR / "web"), cwd=str(PROJECT_DIR / "web"),
timeout=600, timeout=600,
capture=False capture=False
@@ -268,7 +271,7 @@ def deploy_admin():
log_info("执行管理后台部署...") log_info("执行管理后台部署...")
ok, _, err = run_command( ok, _, err = run_command(
"python3 deploy.py", f"{PYTHON} deploy.py",
cwd=str(PROJECT_DIR / "web-admin"), cwd=str(PROJECT_DIR / "web-admin"),
timeout=600, timeout=600,
capture=False capture=False
@@ -296,7 +299,7 @@ def deploy_life_script():
log_info("执行 Life-Script 部署...") log_info("执行 Life-Script 部署...")
ok, _, err = run_command( ok, _, err = run_command(
"python3 deploy.py", f"{PYTHON} deploy.py",
cwd=str(PROJECT_DIR / "life-script"), cwd=str(PROJECT_DIR / "life-script"),
timeout=600, timeout=600,
capture=False capture=False