【问题标题】:Start subprocess with environment variables使用环境变量启动子进程
【发布时间】:2021-01-30 23:53:27
【问题描述】:

我需要启动一个进程,将一些参数传递给环境变量中的子进程。

我知道我可以使用 subprocess.run() 在 python > 3.5 中执行此操作。如何使用 python 2.7 做到这一点?

在 python 2.7 中,我可以修改启动子进程的进程的环境变量。子进程将继承环境变量。但我不希望那样。我只想在子进程中设置环境变量。

【问题讨论】:

    标签: python-2.7 subprocess


    【解决方案1】:

    使用:subprocess.Popen('env', env={'A':'5','B':'5'})

    示例运行:

    >>> import subprocess
    >>> subprocess.Popen('env', env={'A':'5','B':'5'})
    <subprocess.Popen object at 0x102288950>
    >>> A=5
    B=5
    

    来自docs

    如果 env 不是 None,它必须是定义环境的映射 新流程的变量;这些被使用而不是继承 当前进程的环境,这是默认行为。

    Python3 subprocess.run()using 相同 Popen kwarg env:

    完整的函数签名与 Popen 的签名大致相同 构造函数

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-17
      • 2018-09-01
      • 2013-04-03
      • 2012-12-16
      • 1970-01-01
      • 2014-01-24
      相关资源
      最近更新 更多