This commit is contained in:
2025-08-15 19:51:02 +08:00
parent 6332bda929
commit da2ac45177
6 changed files with 247 additions and 79 deletions

View File

@@ -1,4 +1,5 @@
import subprocess
import sys
import threading
import atexit
import json
@@ -36,11 +37,19 @@ class FlaskSubprocessManager:
if self.process is not None:
raise RuntimeError("子进程已在运行中!")
# 通过环境变量传递通信端口
base_dir = os.path.dirname(os.path.abspath(__file__)) # 当前脚本所在路径
script_path = os.path.abspath(os.path.join(base_dir, "../Flask/FlaskService.py"))
python_executable = os.path.abspath(sys.executable) # 获取当前解释器路径
if not os.path.isfile(script_path):
raise FileNotFoundError(f"❌ 找不到 FlaskService.py: {script_path}")
# 通过环境变量传递通信端口
env = os.environ.copy()
env['FLASK_COMM_PORT'] = str(self.comm_port)
self.process = subprocess.Popen(
['python', 'Flask/FlaskService.py'], # 启动一个子进程 FlaskService.py
[python_executable, script_path], # 启动一个子进程 FlaskService.py
stdin=subprocess.PIPE, # 标准输入流,用于向子进程发送数据
stdout=subprocess.PIPE, # 标准输出流,用于接收子进程的输出
stderr=subprocess.PIPE, # 标准错误流,用于接收子进程的错误信息