如何在一个脚本中设置环境变量,并在将输出通过管道传输到另一个脚本后,我需要在第一个脚本中设置某些环境变量并在第二个脚本中使用。
我正在使用 python 脚本。
python script1.py | python script2.py
在 script1.py
中,我正在做
os.environ["some_key"] = some_value
在 script2.py
中,我试图将其读作
saved_value = os.environ["some_key"]
当我尝试如上所述运行上述脚本时,
Traceback (most recent call last):
File "script2.py", line 11, in <module>
filename = os.environ["some_key"]
File "/usr/lib/python2.7/UserDict.py", line 23, in __getitem__
raise KeyError(key)
这有什么可以纠正的吗?我特别需要从 script2.py
中的 os.environ["some_key"]
读取它,因为该文件是更大框架的一部分,无法更改它。我可以灵活地使用 script1.py
最佳答案
不可能设置另一个进程的环境变量 - 除非你自己启动它。
如果可以,请考虑更改 script1
以使用 subprocess.Popen
直接启动 script2
,并提供 env
争论。
如果您不能这样做,您将需要更改父进程(可能是启动脚本的 bash 脚本)以某种方式从 script1
接收所需的变量并设置它启动 script2 时。
关于python - 在 Linux 中通过管道设置和使用环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25747760/