Jupyter Notebook 从 bash 子进程设置环境变量

Jupyter Notebook to set environment variable from bash subprocess

在Jupyter Notebook中,我们可以使用

% bash 到 运行 子进程中具有 bash 的单元格。

例如:

%%bash
export PROJECT=$(gcloud config list project --format "value(core.project)")
echo "Your current GCP Project Name is: "${PROJECT}

这样导出的环境变量可以在下一个单元格中使用吗?下一个单元格的输出是什么? (抱歉,我 运行 超出了我的 GCP 项目的分配时间,无法自行验证)

%%bash
echo New $PROJECT

如果没有,那么,

有什么方法可以将环境变量放入 Jupyter Notebook 的 bash 子进程中?

您不能将变量从一个 bash 单元格导出到另一个单元格(不是子单元格),但是您可以 从您的 Python 到 bash.

的父进程
import os, subprocess

# set a Python variable 'project'
project = subprocess.check_output(['gcloud', 'config', 'list', 'project',
                                   '--format', 'value(core.project)'])

# Copy it to an environment variable 'PROJECT'
os.environ['PROJECT'] = project