sous-processus.appel env var
Je suis en utilisant Popen parce que j'ai besoin de l'env, comme ceci:
Popen(
["boto-rsync", "..."],
env={"PATH":"/Library/Frameworks/Python.framework/Versions/2.7/bin/"},
)
Le problème est Popen
exécute la commande comme un nouveau thread. Est-il possible que je puisse passer env
à subprocess.call
ou de prévenir Popen
de la création d'un nouveau thread?
Merci
sans rapport:
Popen()
ne PAS créer un nouveau fil de discussion (il crée un nouveau processus).OriginalL'auteur AliBZ | 2012-07-05
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser
env
avec appel exactement de la même façon qu'avecpopen
:la documentation de sous-processus.appel n'est pas clair sur ce point, c'est la seule indication que d'autres mot-clé args sont pris en charge est la petite astérisque dans
subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)
pour être clair:
subprocess.call(cmd)
est justesubprocess.Popen(cmd).wait()
c'est à dire, vous pouvez passer àcall()
tous les arguments que vous pouvez passer àPopen()
.OriginalL'auteur siesta