使用 conda 环境内核 vscode 中的 Jupyter Notebooks 运行 中的陈旧环境变量
Stale environment variables in Jupyter Notebooks running in vscode using a conda environment kernel
我在 Ubuntu vscode 的 conda 环境中使用 jupyter,一切正常。但是,最近我遇到了 AWS 访问令牌在我的 jupyter 笔记本中过期的问题。
似乎这些访问令牌在代码环境或 jupyter 层中的某个级别得到了某种级别的缓存,但我不知道在哪里以及如何清理它。
示例:
我正在使用 aws-vault
生成可以在环境中访问的 SSO 凭据。
开始会话后,我可以从我的终端访问 AWS_SESSION_EXPIRATION
:
echo $AWS_SESSION_EXPIRATION
2022-04-20T17:40:36Z
当我启动时 vscode,打开一个终端,我得到了同样的结果。
当我激活我的环境时,运行
python -c "import os;print(os.environ['AWS_SESSION_EXPIRATION'])"
我也一样。
但是,当我打开一个新的jupyter notebook和select相同的环境,并且运行
import os
print(os.environ['AWS_SESSION_EXPIRATION'])
我明白了
2022-04-06T11:09:03Z
我尝试在 conda env 或 jupyter 扩展中找到任何可以缓存 env 变量的文件。我也试过重新启动 vscode 和机器本身 - 都没有成功。
谁能帮我清理一下?
谢谢!!
编辑:
另一个例子:
如果我在终端中设置
export FOO=BAR
然后我可以在 vscode.
内通过终端和 jupy notebook 按预期访问 $FOO
然后我关闭vscode,运行
unset FOO
重启机器,启动vscodenew,打开一个同样conda环境的新notebook
内,运行宁
import os
print(os.environ['FOO'])
仍然 returns BAR
似乎有 an issue in the vscode-jupyter 扩展,它以某种方式将环境变量存储在 kernel.json
文件中。
在撰写本文时,问题仍未解决。在 ubuntu、this workaround 中从问题的线程中工作对我有用:
- Close code completely
find ~/.vscode/extensions/ms-toolsai.jupyter*
code .
- Run a notebook and it will pick up the changes.
关闭 vscode 后,发出以下命令删除缓存:
find ~/.vscode/extensions/ms-toolsai.jupyter* -name kernel.json -delete
来源:https://github.com/microsoft/vscode-jupyter/issues/9774#issuecomment-1110328329
我在 Ubuntu vscode 的 conda 环境中使用 jupyter,一切正常。但是,最近我遇到了 AWS 访问令牌在我的 jupyter 笔记本中过期的问题。
似乎这些访问令牌在代码环境或 jupyter 层中的某个级别得到了某种级别的缓存,但我不知道在哪里以及如何清理它。
示例:
我正在使用 aws-vault
生成可以在环境中访问的 SSO 凭据。
开始会话后,我可以从我的终端访问 AWS_SESSION_EXPIRATION
:
echo $AWS_SESSION_EXPIRATION
2022-04-20T17:40:36Z
当我启动时 vscode,打开一个终端,我得到了同样的结果。
当我激活我的环境时,运行
python -c "import os;print(os.environ['AWS_SESSION_EXPIRATION'])"
我也一样。
但是,当我打开一个新的jupyter notebook和select相同的环境,并且运行
import os
print(os.environ['AWS_SESSION_EXPIRATION'])
我明白了
2022-04-06T11:09:03Z
我尝试在 conda env 或 jupyter 扩展中找到任何可以缓存 env 变量的文件。我也试过重新启动 vscode 和机器本身 - 都没有成功。
谁能帮我清理一下?
谢谢!!
编辑:
另一个例子:
如果我在终端中设置
export FOO=BAR
然后我可以在 vscode.
内通过终端和 jupy notebook 按预期访问$FOO
然后我关闭vscode,运行
unset FOO
重启机器,启动vscodenew,打开一个同样conda环境的新notebook
内,运行宁
import os
print(os.environ['FOO'])
仍然 returns BAR
似乎有 an issue in the vscode-jupyter 扩展,它以某种方式将环境变量存储在 kernel.json
文件中。
在撰写本文时,问题仍未解决。在 ubuntu、this workaround 中从问题的线程中工作对我有用:
- Close code completely
find ~/.vscode/extensions/ms-toolsai.jupyter*
code .
- Run a notebook and it will pick up the changes.
关闭 vscode 后,发出以下命令删除缓存:
find ~/.vscode/extensions/ms-toolsai.jupyter* -name kernel.json -delete
来源:https://github.com/microsoft/vscode-jupyter/issues/9774#issuecomment-1110328329