如何使用Python在当前shell中设置环境变量?

Ale*_*lex 5 python shell

我想用Python脚本设置一个环境变量,影响我在其中启动脚本的 shell。这就是我的意思

python -c "import os;os.system('export TESTW=1')"
Run Code Online (Sandbox Code Playgroud)

但命令

echo ${TESTW}
Run Code Online (Sandbox Code Playgroud)

什么也不返回。还用表达

python -c "import os;os.environ['TEST']='1'"
Run Code Online (Sandbox Code Playgroud)

这是行不通的。

还有另一种方法可以直接意义上做到这一点吗?或者将变量写入我从 Python 脚本“外部”执行的文件中是否更好?

Max*_*xym 4

您可以通过以下方式影响环境:putenv但它不会影响调用者环境,只会影响分叉子项的环境。在启动 python 脚本之前设置环境确实要好得多。

我可能会提出这样的变体。您创建一个 bash 脚本和一个 python 脚本。在 bash 脚本中,您可以使用参数调用 python 脚本。一个参数 - 一个环境变量。例如:

#!/bin/bash

export TESTV1=$(python you_program.py testv1)
export TESTV2=$(python you_program.py testv2)
Run Code Online (Sandbox Code Playgroud)

you_program.py testv1仅返回一个环境变量的值。