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

如何从Python中导出环境变量?

如何从Python中导出环境变量?

在bash中,我们可以用export my_var="foo"的方式导出环境变量,让后续启动的子进程都能读取到这个变量。但直接在Python中使用os.environ['my_var'] = 'bar'只能在当前Python进程内部生效,无法影响到Python进程之外的环境(比如父shell进程或后续的终端会话)。下面分场景给出解决方案:

1. 为Python启动的子进程设置环境变量

如果只是需要让Python启动的子进程能获取到该环境变量,直接修改os.environ即可,因为子进程会继承当前Python进程的环境变量:

import os
import subprocess

# 在当前Python进程中设置环境变量
os.environ['my_var'] = 'bar'
# 启动子进程,子进程可以读取到my_var
subprocess.run(['echo', '$my_var'], shell=True)

2. 影响父shell进程或后续终端会话(间接实现)

由于操作系统的进程隔离机制,子进程(Python进程)无法直接修改父进程(比如bash)的环境变量,只能通过以下间接方式实现类似export的效果:

方法一:输出环境变量设置命令,由终端执行

让Python脚本输出设置环境变量的shell命令,然后在终端中通过eval执行这些命令:

# Python脚本内容
print('export my_var="bar"')

在bash中执行:

eval $(python your_script.py)

执行后,当前终端会话就能读取到my_var变量。

方法二:将环境变量写入shell配置文件(永久生效)

如果需要让变量在所有终端会话中永久生效,可以让Python把export命令追加到shell的配置文件(比如~/.bashrc、~/.zshrc)中:

import os

# 写入bash配置文件
with open(os.path.expanduser('~/.bashrc'), 'a') as f:
    f.write('export my_var="bar"\n')

修改完成后,需要重启终端或者执行source ~/.bashrc才能让变量生效。

内容的提问来源于stack exchange,提问作者J'e

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 22:21:34