How can I access environment variables in Python?
This question explores how to retrieve and use environment variables in Python using the built-in os module, which is commonly used for configuration, secrets management, and platform-specific settings.
Accessing environment variables in Python is a common practice when you're dealing with configuration settings, API keys, or environment-specific paths that you don’t want hardcoded into your scripts. Thankfully, Python makes this easy using the built-in os module.
1. Accessing an Environment Variable
Use os.environ.get() to safely retrieve a variable:
import os
db_host = os.environ.get("DB_HOST")
print(db_host)
This returns the value of DB_HOST or None if the variable isn’t set.
You can also provide a default value:
db_host = os.environ.get("DB_HOST", "localhost")
2. Accessing with Direct Indexing
db_host = os.environ["DB_HOST"]
This works too, but raises a KeyError if the variable doesn’t exist.
3. Setting Environment Variables in Python
You can also define a variable in your current Python session:
os.environ["NEW_VAR"] = "test_value"
Keep in mind: this change only affects the current process, not your system environment.
Common Use Cases
- Storing API keys (API_KEY)
- Database credentials (DB_USER, DB_PASS)
- Feature flags or debug modes
In short, use os.environ.get() for safe access and keep sensitive data like passwords or tokens out of your source code. This approach is widely used in production environments and frameworks like Django and Flask.