Python: variables de shell persistentes en el subproceso

Estoy intentando ejecutar una serie de comandos usando el módulo de subproceso Pythons, sin embargo, necesito configurar las variables de shell con la exportación antes de ejecutarlas. Por supuesto, el shell no parece ser persistente, así que cuando ejecuto un comando más tarde, esas variables del shell se pierden.

¿Hay alguna manera de hacer esto? Podría crear un proceso / bin / sh, pero ¿cómo obtendría los códigos de salida de los comandos que se ejecutan bajo eso?

subprocess.Popen toma un argumento opcional llamado env que es un diccionario para usar como el entorno del subproceso (lo que se describe como “variables de shell”). Prepare un dict como lo necesite (puede comenzar con una copia de os.environ y modificarlo según sea necesario) y pasarlo a todos los subprocess.Popen Llamadas subprocess.Popen que realice.

Alex es absolutamente correcto. Para dar un ejemplo

 current_env=environ.copy() current_env["XXX"] = "SOMETHING" #If you want to change some env variable subProcess.Popen("command_n_args", env=current_env)