subprocess.call env var

Ali*_*iBZ 12 python subprocess call environment-variables popen

我正在使用Popen因为我需要env,就像这样:

Popen(
    ["boto-rsync", "..."],
    env={"PATH":"/Library/Frameworks/Python.framework/Versions/2.7/bin/"},
    )
Run Code Online (Sandbox Code Playgroud)

问题是Popen将命令作为新线程运行.有什么办法,我可以传递envsubprocess.call或阻止Popen从创建一个新的线程?感谢名单

sie*_*sta 22

您可以使用env与以下完全相同的方式使用呼叫popen:

subprocess.call(
    ["boto-rsync", "..."],
    env={"PATH":"/Library/Frameworks/Python.framework/Versions/2.7/bin/"},
    )
Run Code Online (Sandbox Code Playgroud)

  • @AliBZ [subprocess.call](https://docs.python.org/2/library/subprocess.html#subprocess.call)的文档在这一点上并不清楚 - 这是支持其他关键字args的唯一指示是`subprocess.call中的小星号(args,*,stdin = None,stdout = None,stderr = None,shell = False)` (4认同)
  • @AliBZ:要明确:`subprocess.call(cmd)`只是`subprocess.Popen(cmd).wait()`ie,你可以传递给`call()`你可以传递给`Popen的所有参数( )`. (3认同)