""" conf/env.sh 跨语言单源 bootstrap。 用法:在 dw_base/__init__.py 顶部调用一次,之后 Python 侧通过 os.environ[X] 读取。 实现:让 bash 自己解析 env.sh(`bash -c '. env.sh && env -0'`),避免重写解析器导致 bash/python 双解析漂移。 """ import os import subprocess from pathlib import Path def bootstrap_env(env_sh_path: str = None) -> None: if env_sh_path is None: project_root = Path(__file__).resolve().parents[2] env_sh_path = str(project_root / 'conf' / 'env.sh') result = subprocess.run( ['bash', '-c', f'. "{env_sh_path}" && env -0'], capture_output=True, check=True, ) for entry in result.stdout.split(b'\x00'): if not entry: continue key, _, value = entry.decode().partition('=') # setdefault: 若 shell 侧已 export(如 init.sh 已 source env.sh),保留 shell 值不覆盖 os.environ.setdefault(key, value)