import subprocess import os # 定义要启动的应用及其路径和端口 services = [ ("data_processing/data_operation/data_join.py", 10094), ("data_processing/data_operation/mysql_to_mongo.py", 10095), ("data_processing/processing_limit_power/processing_limit_power_by_agcavc.py", 10086), ("data_processing/processing_limit_power/processing_limit_power_by_machines.py", 10087), ("data_processing/processing_limit_power/processing_limit_power_by_records.py", 10088), ("data_processing/processing_limit_power/processing_limit_power_by_statistics_light.py", 10085), ("data_processing/processing_limit_power/processing_limit_power_by_statistics_wind.py", 10093), ("evaluation_processing/analysis_report.py", 10092), ("evaluation_processing/evaluation_accuracy.py", 10091), ("models_processing/model_train/model_training_lightgbm.py", 10089), ("models_processing/model_predict/model_prediction_lightgbm.py", 10090), ("models_processing/model_train/model_training_lstm.py", 10096), ("models_processing/model_predict/model_prediction_lstm.py", 10097), ("post_processing/post_processing.py", 10098), ("evaluation_processing/analysis.py", 10099), ("models_processing/model_predict/res_prediction.py", 10100) ] # 获取当前脚本所在的根目录 base_dir = os.path.abspath(os.path.dirname(__file__)) # 启动所有服务 processes = [] for service, port in services: service_path = os.path.join(base_dir, service) print(f"Starting {service} on port {port}") env = os.environ.copy() env["PYTHONPATH"] = base_dir # 设置 PYTHONPATH 为项目根目录 p = subprocess.Popen(["python", service_path], env=env) processes.append(p) # 等待所有进程结束 for p in processes: p.wait()