How To Set Environment Variables In Python


By squashlabs, Last Updated: November 4, 2023

How To Set Environment Variables In Python

Setting environment variables in Python allows you to configure your application’s runtime environment. These variables are key-value pairs that can be accessed by your Python code and can be used to customize the behavior of your application. In this article, we will explore different ways to set environment variables in Python.

Why is this question asked?

The question of how to set environment variables in Python is commonly asked by developers who want to customize their application’s behavior based on different runtime configurations. Environment variables provide a flexible way to configure application settings without modifying the code directly. This allows for better separation of configuration and code, making applications more portable and easier to manage across different environments.

Possible Ways to Set Environment Variables in Python

There are several ways to set environment variables in Python. Let’s explore two common methods:

1. Using the os module

The os module in Python provides a way to interact with the underlying operating system. It includes functions to manage environment variables. The os.environ object is a dictionary-like object that holds the current environment variables.

To set an environment variable using the os module, you can use the os.environ dictionary directly. Here’s an example:

import os

os.environ['MY_VARIABLE'] = 'my_value'

In the above example, we set the environment variable MY_VARIABLE to the value 'my_value'. This variable will now be accessible from within the Python script.

A better way to build and deploy Web Apps

  Cloud Dev Environments
  Test/QA enviroments

One-click preview environments for each branch of code.

2. Using the dotenv package

The dotenv package is a popular choice for managing environment variables in Python applications. It allows you to define environment variables in a separate .env file and load them into your Python script using the load_dotenv() function.

To use the dotenv package, you first need to install it using pip:

pip install python-dotenv

Once installed, create a file named .env in the root directory of your project and define your environment variables inside it. Each variable should be defined on a separate line, following the format KEY=VALUE. Here’s an example:


In your Python script, you can then load the environment variables from the .env file using the load_dotenv() function from the dotenv package:

from dotenv import load_dotenv


After calling load_dotenv(), the environment variables defined in the .env file will be available through the os.environ dictionary.

Best Practices

When setting environment variables in Python, there are a few best practices to keep in mind:

1. Use descriptive names: Choose meaningful names for your environment variables to make their purpose clear.

2. Store sensitive information securely: Avoid storing sensitive information, such as passwords or API keys, directly in environment variables. Instead, consider using a secure secrets management solution or encrypted configuration files.

3. Use a .env file: The dotenv package provides a convenient way to store and load environment variables from a .env file. This helps keep your configuration separate from your code and allows for easy sharing of environment settings across different environments.

4. Document your environment variables: Include documentation or comments in your code to describe the purpose and expected values of each environment variable. This makes it easier for other developers to understand and work with your code.

5. Use default values: Provide default values for environment variables when they are not set. This helps prevent errors and makes your code more resilient.

Alternative Ideas and Suggestions

While the methods mentioned above are commonly used for setting environment variables in Python, there are other alternatives worth exploring:

1. Command-line arguments: Instead of using environment variables, you can pass configuration values directly to your Python script as command-line arguments. This gives you more control over the configuration at runtime and allows for easy automation.

2. Configuration files: Another option is to use configuration files, such as YAML or JSON, to define your application’s settings. These files can be easily parsed by your Python script and provide a structured way to manage configuration.

3. External services: In some cases, it may be more appropriate to store configuration settings in external services, such as a database or a configuration management system. This can provide more flexibility and scalability, especially in distributed systems.

More Articles from the Python Tutorial: From Basics to Advanced Concepts series: