Properly configuring a development, test or production environment is important for the successful execution of your Python application.
There are many de facto names for environments:
The above list provides the common environment names but there can be a limitless number and each organization has their own configuration.
Environment variables are modifiable system values that can be read by Python applications to affect a program's execution.
One answer I found very useful when learning about getting environment variables in Python code is knowing the difference between os.getenv and os.environ.get. Either one can be used in your applications but there are slight differences that can make one better than the other in various situations.
Other useful environment variables resources: * How to Set Environment Variables in Linux and Mac: The Missing Manual is a wonderfully detailed guide with many tips and tricks throughout the walkthrough such as quickly setting environment variables for a single command, passing environment variables through when using sudo and executing a command in a "clean" environment without everything you have already set interfering or being accessible to that script.
The Twelve-Factor App describes a method for securing environment data for your applications. The twelve factors are commonly referenced across many programming ecosystems, not just Python, so it's worthwhile to familiarize yourself with how to use this method to configure your applications.
Everything You Need to Know About the Twelve-Factor App breaks down the original twelve-factor app source material and provides solid additional advice and context.
Security of infrastructure secrets elaborates on techniques to protect your secret tokens such as API keys as well as the threats that are out there which put your secrets at risk.
Staging Servers, Source Control & Deploy Workflows, And Other Stuff Nobody Teaches You
Deployments best practices explains the differences between various environments and why you need each one.
A good QA team needs a proper software staging environment for testing