gpt4 book ai didi

python - 从 popen 中检索环境变量

转载 作者:可可西里 更新时间:2023-11-01 10:33:53 25 4
gpt4 key购买 nike

我正在努力将旧的批处理文件系统转换为 python。我遇到了一个批处理文件,它为调用它的批处理文件设置了环境变量。这些值随后会在以后调用批处理文件时再次使用。我的环境变量似乎降低了调用流程,但我无法恢复它们。我在这里阅读了两个不同的线程,它们谈论的是相似但不完全相同的东西。是否可以从子进程中检索这些环境变量?

Python subprocess/Popen with a modified environment

Set Environmental Variables in Python with Popen

我现在在做什么:

p = Popen(process_, cwd=wd, stdout=PIPE, shell=True,
universal_newlines=True, stderr=STDOUT, env=env)

bat文件的老流程:

foo.bat calls foo-setparam.bat
foo-setparam.bat sets some variables
foo.bat uses these variables
foo.bat calls bar.bat
bar.bat uses variables set by both foo.bat and foo-setparam.bat

更新:我尝试在我的 popen 参数前添加“call”。我有同样的行为。

最佳答案

子进程通常不可能设置父环境变量,除非您想在父进程中创建一个远程线程并使用该线程代表您设置变量。

让 python 脚本编写包含一系列设置命令的临时文件要容易得多:

set VAR1=newvalue1
set VAR2=newvalue2

然后修改调用批处理文件以调用您的 python 脚本,如:

python MyScript.py
call MyScript_Env.cmd

关于python - 从 popen 中检索环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38334564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com