首页 > 解决方案 > 使用环境变量启动子进程

问题描述

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

我知道我可以subprocess.run()在 python > 3.5 中使用它来执行此操作。我怎样才能用 python 2.7 做到这一点?

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

标签: python-2.7subprocess

解决方案


利用: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

文档

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

Python3subprocess.run()使用相同的kwargPopenenv

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


推荐阅读