从另一个 jupyter 单元格访问在 %%bash 单元格中声明的变量

access variable declared in a %%bash cell from another jupyter cell

在 jupyter notebook 中我有一个 bash jupyter cell 如下:

%%bash

export MYVAR="something"

我想在另一个 python 单元格中访问 $MYVAR。例如

print(MYVAR)

我希望单元格打印 "something",但我收到一条 NameError 消息。

示例图片:

您可以尝试将输出捕获到 python 变量:

在[1]中:

%%bash --out my_var

MYVAR="something"
echo "$MYVAR"

在 [2] 中:

print(my_var)
something

此外,您可能会发现 this 博客 post 很有用。

一种解决方法是将 bash 单元格的变量输出存储到临时文件中,然后在 python 单元格或其他 bash 单元格中读取它。例如

Bash 单元格

%%bash
my_var="some variable"

echo $my_var > /tmp/my_var

Python 单元格

my_var = !cat /tmp/my_var
print(my_var)

输出为:['some variable']