You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Databricks中将Shell脚本变量传递给Python

问题:Shell导出的环境变量无法在Python中读取

我尝试在Python中获取Shell脚本里定义的环境变量,相关代码如下:

Shell代码块:

export MY_VAR="my_value"
echo $MY_VAR

Python代码块:

import os
my_var = os.environ.get("MY_VAR")
print(my_var)

目前Shell脚本里能正常输出MY_VAR的值,但Python调用os.environ.get("MY_VAR")时返回None,求解决方法。


解决办法

  • 同一Shell会话内关联执行
    如果是在终端环境,先执行变量导出命令,再直接运行Python脚本,确保两者属于同一个Shell会话:
    export MY_VAR="my_value"
    python your_script.py
    
  • 执行Python时临时传递变量
    可以在启动Python的命令中直接附带环境变量,这种方式无需提前导出:
    MY_VAR="my_value" python your_script.py
    
  • Notebook环境特殊处理(如Databricks)
    这类环境中每个代码块是独立进程,Shell块的环境变量无法直接传递给Python块。可以通过文件中转:
    Shell块写入变量到文件:
    echo "my_value" > /tmp/my_var_temp.txt
    
    Python块读取文件内容:
    with open('/tmp/my_var_temp.txt', 'r') as f:
        my_var = f.read().strip()
    print(my_var)
    

原因说明

Shell进程和Python进程是相互独立的,export仅将变量添加到当前Shell进程的环境中,只有该Shell的子进程会继承这些环境变量。如果你的Shell代码和Python代码是分开执行的(比如Notebook的不同单元格),二者属于完全隔离的进程环境,因此Python进程无法读取到Shell进程里导出的变量。


内容的提问来源于stack exchange,提问作者Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 09:42:35