# runtime_env说明
runtime_env用于声明UDF运行所需的运行时环境，包括 Python 版本、PyPI 依赖包、环境变量等。该配置会序列化为JSON字符串存入LakeFormation的parameters.runtime_env字段，UDF在Aura引擎运行时按此配置准备环境。
#### 作用
- **保证可执行**：UDF依赖的第三方包、Python版本在引擎侧按声明安装，避免"本地能跑、远端报错"。
- **版本可控**：支持固定Python版本（3.10/3.11）与指定包版本，保证运行环境一致。
- **跨端同步**：环境配置随函数元数据持久化，与函数生命周期绑定。
 
#### 什么情况下使用
表1场景说明 
| 场景                 | 用法                                     |
|:---|:---|
| UDF 依赖第三方 Python 包 | 在pypi/pip中声明包名（如 \["numpy"\]）。          |
| 需指定 Python 版本       | 设置 python_version（仅支持3.11或3.10）。         |
| 需注入运行环境变量          | 设置env_vars。                            |
| 无特殊依赖               | 传None即可，SDK构造默认环境（python_version=3.11）。 |
   
#### 构造方式
runtime_env接受以下三种形式，SDK内部统一构造为RuntimeEnv对象：
表2构造方式说明 
| 传入形式        | 示例 | 说明                                    |
|:---|:---|:---|
| JSON字符串      | ``` '{"python_version": "3.11", "pypi": ["numpy"]}' ```               | 经json.loads解析。                         |
| Mapping/dict | ``` {"python_version": "3.11", "pypi": ["numpy"]} ```                 | 直接更新到内部数据结构。                           |
| None          | -  | 构造默认RuntimeEnv，python_version设置为3.11。 |
   
#### 常见键
表3常见键说明 
| 键              | 类型            | 说明                                              |
|:---|:---|:---|
| python_version | str           | Python版本，仅支持3.11（默认）或3.10；传入其他版本会抛出ValueError。 |
| pypi/pip        | list\[str\] | PyPI依赖包列表；合并时按包名去重。                          |
| env_vars         | dict            | 运行时环境变量。                                      |
   
#### 默认值与校验行为
- 当runtime_env为None时，SDK构造空RuntimeEnv，并自动将python_version设为3.11。
- 若runtime_env提供了python_version，SDK校验其取值；非3.11/3.10时抛出ValueError。
- RuntimeEnv是类字典的可变映射（MutableMapping），支持to_dict()、to_json()、merge(other) 方法。merge采用深合并策略：dict递归合并、list去重合并（pypi/pip/dependencies 键按包名去重）、标量冲突时左值优先。
 
#### 返回值
返回Function对象，其中包含LakeFormation分配的version_id、resource_uris（OBS 包地址）及parameters（签名、运行时环境等元数据）。
