如何在Jupyter的bash magic中同时引用Python变量和环境变量
解决方法
Jupyter 解析 ! 开头的 shell 命令时,若检测到未转义的 $ 会优先将命令交给 shell 处理,跳过 Python 的 {} 插值逻辑,这是问题的核心原因。可以用以下三种方式实现同时输出Python变量和shell环境变量:
方法1:转义shell环境变量的
$前缀,让Jupyter先完成Python表达式求值再交给shell执行
代码示例:!echo "{1+1}" "\$HOME"输出结果:
2 /home/ec2-user方法2:所有变量都在Python侧读取,完全使用Python插值逻辑,避免和shell的
$语法冲突
代码示例:import os !echo "{1+1}" "{os.environ['HOME']}"方法3:提前将Python表达式的结果赋值给变量,使用Jupyter原生支持的
$+变量名语法引用Python变量,可直接和shell环境变量的$语法共存
代码示例:py_calc_result = 1 + 1 !echo $py_calc_result $HOME
内容的提问来源于stack exchange,提问作者Julio Faerman
相关产品推荐
相关产品推荐

