#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 统一启动 gRPC 客户端脚本 自动设置 PYTHONPATH,让 generated 下的 cmvr 包可用 用法: python run_client.py get_joint_state_client python run_client.py movej_client """ import os import sys import subprocess PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__)) GENERATED_DIR = os.path.join(PROJECT_ROOT, "generated") CLIENTS_DIR = os.path.join(PROJECT_ROOT, "clients") # 添加 generated 到 PYTHONPATH sys.path.insert(0, GENERATED_DIR) os.environ["PYTHONPATH"] = GENERATED_DIR + os.pathsep + os.environ.get("PYTHONPATH", "") if len(sys.argv) < 2: print("请指定要运行的客户端脚本名,例如:get_joint_state_client") sys.exit(1) client_name = sys.argv[1] client_script = os.path.join(CLIENTS_DIR, f"{client_name}.py") if not os.path.isfile(client_script): print(f"客户端脚本不存在: {client_script}") sys.exit(1) # 支持传递额外参数给客户端 subprocess.run([sys.executable, client_script] + sys.argv[2:])