【问题标题】:How to get environment variable in python subprocess如何在python子进程中获取环境变量
【发布时间】:2021-12-07 20:18:50
【问题描述】:

我有一个驱动程序,它通过

启动和管理数百个进程
p = subprocess.Popen(cmd)

我面临的一种情况是: 因为许多进程可能通过

设置自己的环境变量
os.environ[key] = val

进程退出后可能会消失。

我的问题是:由于其中一些可能会失败,我想在本地重现它们,所以我需要正确的 if-else 路径的环境变量。

在 python 中有没有办法从子进程中获取环境变量?

【问题讨论】:

  • 没有。如果您有办法识别每个进程,则可以让子进程将其环境转储到文件中。
  • 环境变量是进程本地的。当设置它们及其子项的程序退出时,它们就消失了。设计始终如此。

标签: python environment-variables


【解决方案1】:

进程退出后可能会消失

应该是“哪个消失”。在 UNIX 进程模型中,环境变量是每个进程私有的。如果您使用的是 Linux,您可能会想尝试阅读 /proc/$pid/environ。然而,这是不正确的,因为它只列出了创建进程时存在的变量。它不会包括进程对其自己的环境变量所做的任何更改。

简而言之,如果没有子进程的明确合作,就没有办法做你想做的事。

【讨论】:

    猜你喜欢
    • 2020-12-22
    • 1970-01-01
    • 1970-01-01
    • 2011-08-19
    • 2014-08-24
    • 2010-11-15
    • 1970-01-01
    • 2014-01-24
    • 2015-11-12
    相关资源
    最近更新 更多