Vladimir Vislovich
Vladimir Vislovich

Reputation: 391

Python set environment variable when creating venv

In my project I use the built-in python virtual env (python -m venv).
To set environment variables I add multiple export VAR1=VALUE1 to the end of the venv/bin/activate.
Obviously, when I delete the venv and create a new one, for example with the new python version all my env variables get lost.
So, is there a way to preserve them? May be it is possible to define env variables when creating the venv?

Upvotes: 6

Views: 19033

Answers (2)

JL Peyret
JL Peyret

Reputation: 12204

instead of adding to activate

export VAR1=VALUE1

consider writing them into their own file:

~/setupenv.sh:

export VAR1=VALUE1

and add the following to activate

source ~/setupenv.sh

However, personally, I would not do that. I would instead define a bash function to do it:

myownactivate(){
  source <path_to_activate>
  export VAR1=VALUE1
}

Upvotes: 6

sagar1025
sagar1025

Reputation: 696

Use dotenv

Essentially, you have to create a simple .env file that containsyour variables and values and it will load them when you run your application.

You can access them by os.getenv('VAR1')

Upvotes: 2

Related Questions