首页 > 解决方案 > 如何在 jupyter bash 魔术中同时引用 python 和环境变量?

问题描述

我想添加一个带有环境变量和 python 变量的 bash 魔术单元,如下所示:

!echo "{1+1}" "$HOME" 

期待它打印:

2 /home/ec2-user

但是,这不会评估 python 表达式,输出是:

{1+1} /home/ec2-user

删除环境变量使 python 表达式工作:

!echo "{1+1}" "HOME" 
2 HOME

打印这两个变量的正确语法是什么?

标签: jupyter-notebookipythonjupyter

解决方案


https://ipython.readthedocs.io/en/stable/interactive/reference.html#system-shell-access

该文档有一个带有$$HOME.

In [27]: !echo $HOME
/home/paul
In [28]: !echo $$HOME
/home/paul
In [29]: !echo {i+3} $$HOME
5 /home/paul

看起来$var可以被解析为局部变量的替换,或者将其传递给 shell 以进行评估。 $$HOME似乎强制使用shell。但是从文档中并不清楚它是如何处理这些细节的。


推荐阅读