[파이썬] subprocess `subprocess.ENV`: 환경 변수 설정

Environment variables are essential for configuring various aspects of an application or system. In Python, the subprocess module provides a way to interact with system processes, and it can also be used to manage environment variables. In this blog post, we will explore how to set environment variables using the subprocess module in Python.

The subprocess.ENV dictionary

Python’s subprocess module provides a dictionary-like object called subprocess.ENV. This dictionary represents the environment variables inherited by the current process. By modifying this dictionary, we can effectively set new environment variables or update existing ones.

Here is an example of how to use subprocess.ENV to set environment variables:

import subprocess

# Create a new environment dictionary
new_env = subprocess.ENV.copy()

# Set a new environment variable
new_env["NEW_VARIABLE"] = "new_value"

# Update an existing environment variable
new_env["EXISTING_VARIABLE"] = "updated_value"

# Pass the updated environment dictionary to a subprocess call
subprocess.run(["command"], env=new_env)

In the example above, we first create a new dictionary called new_env by making a copy of the current environment variables using subprocess.ENV.copy(). This ensures that we start with the existing environment variables and then modify them according to our needs.

We then use the new_env dictionary to set a new environment variable named “NEW_VARIABLE” with the value “new_value”. Similarly, we update an existing environment variable named “EXISTING_VARIABLE” with the value “updated_value”.

Finally, we pass the updated environment dictionary to a subprocess call using the env parameter in the subprocess.run() function. This ensures that the subprocess inherits the modified environment variables.

Conclusion

Using the subprocess module’s subprocess.ENV dictionary, we can easily set or update environment variables in Python. This allows us to configure and customize our applications or interact with system processes more effectively. By understanding how to manipulate environment variables, we gain greater control over the behavior of our Python programs.

Feel free to experiment with the subprocess module and explore its other features for managing environment variables and executing commands in Python. Happy coding!