> ## Documentation Index
> Fetch the complete documentation index at: https://ppio.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 环境变量

export const SandboxConfigHint = () => {
  if (typeof document === "undefined") {
    return null;
  } else {
    return <Note>在运行本文档中的示例代码前，请确保您已正确配置环境变量，详情请参考 <a href="/sandbox/get-start#配置环境变量">配置环境变量</a>。</Note>;
  }
};

本节介绍如何在沙箱中设置和使用环境变量。

<SandboxConfigHint />

## 设置环境变量

您可以通过如下 3 种方式来设置环境变量：

* [创建沙箱时设置全局环境变量](#1-创建沙箱时设置全局环境变量)
* [在沙箱中运行代码时设置环境变量](#2-运行代码时设置环境变量)
* [在沙箱中运行命令时设置环境变量](#3-运行命令时设置环境变量)

### 1. 创建沙箱时设置全局环境变量

您可以在创建沙箱时设置全局环境变量。

<CodeGroup>
  ```js JavaScript & TypeScript icon="js" theme={null}
  import { Sandbox } from 'ppio-sandbox/code-interpreter'

  const sandbox = await Sandbox.create({
      envs: {
          MY_VAR: 'my_value',
      },
  })

  // 命令跑在沙箱的 Shell 环境里
  const result = await sandbox.commands.run("echo $MY_VAR")
  console.log(result)

  // 输出示例：
  // { exitCode: 0, error: undefined, stdout: 'my_value\n', stderr: '' }

  await sandbox.kill()
  ```

  ```python Python icon="python" theme={null}
  from ppio_sandbox.code_interpreter import Sandbox

  sandbox = Sandbox.create(
    envs={
      'MY_VAR': 'my_value',
    },
  )

  # 命令跑在沙箱的 Shell 环境里
  result = sandbox.commands.run("echo $MY_VAR")

  print(result)

  # 输出示例：
  # { exitCode: 0, error: undefined, stdout: '123\n', stderr: '' }

  sandbox.kill()
  ```
</CodeGroup>

### 2. 运行代码时设置环境变量

您可以为沙箱中特定的代码运行片段设置环境变量。

<Note>
  如果您设置了同名的全局环境变量，全局环境变量值将被覆盖。
</Note>

<CodeGroup>
  ```js JavaScript & TypeScript icon="js" theme={null}
  import { Sandbox } from 'ppio-sandbox/code-interpreter'

  const sandbox = await Sandbox.create()

  // 代码跑在沙箱实例里的 Jupyter Notebook 环境里
  const result = await sandbox.runCode('import os; print(os.environ.get("MY_VAR"))', {
    envs: {
      MY_VAR: 'my_value',
    },
  })
  console.log(result.logs)

  await sandbox.kill()
  ```

  ```python Python icon="python" theme={null}
  from ppio_sandbox.code_interpreter import Sandbox

  sandbox = Sandbox.create()

  # 代码跑在沙箱实例里的 Jupyter Notebook 环境里
  result = sandbox.run_code(
      'import os; print(os.environ.get("MY_VAR"))',
      envs={
          'MY_VAR': 'my_value'
      }
  )
  print(result)

  sandbox.kill()
  ```
</CodeGroup>

### 3. 运行命令时设置环境变量

您可以为沙箱中特定的命令执行片段设置环境变量。

<Note>
  如果您设置了同名的全局环境变量，全局环境变量值将被覆盖。
</Note>

<CodeGroup>
  ```js JavaScript & TypeScript icon="js" theme={null}
  import { Sandbox } from 'ppio-sandbox/code-interpreter'

  const sandbox = await Sandbox.create()

  const result = await sandbox.commands.run('echo $MY_VAR', {
    envs: {
      MY_VAR: '123',
    },
  })

  console.log(result)

  // 输出示例：
  // { exitCode: 0, error: undefined, stdout: '123\n', stderr: '' }

  await sandbox.kill()
  ```

  ```python Python icon="python" theme={null}
  from ppio_sandbox.code_interpreter import Sandbox

  sandbox = Sandbox.create()
  result = sandbox.commands.run(
      'echo $MY_VAR',
      envs={
          'MY_VAR': '123'
      }
  )

  print(result)

  # 输出示例：
  # CommandResult(stderr='', stdout='123\n', exit_code=0, error='')

  sandbox.kill()
  ```
</CodeGroup>
