I'm using venv (used pyvenv to create the environment) and would like to set up environment variables here, but postactivate looks like a virtualenv thing. Can this be done with venv?
Asked
Active
Viewed 3,782 times
14
StringsOnFire
- 2,726
- 5
- 28
- 50
3 Answers
14
venv has the activate script which you can modify to add your environment variables.
I would add the variables at the bottom, making a nice comment block to clearly separate the core functionality and my custom variables.
masnun
- 11,635
- 4
- 39
- 50
-
2any idea about the global postdeactivate? – Bastian Aug 22 '17 at 11:15
2
Open [your_virtualenv_dir]/bin/activate (not activate.csh or activate.fish)
To set environment variable on activate, put your exports at the bottom of the file e.g.
export SOME_VARIABLE=some_value
To unset the environment variable upon deactivation, unset the variables within the deactivate function at the top of the file e.g.
deactivate(
...
# default code by venv
...
unset SOME_VARIABLE
)
Seems to work fine for me.
James Ellis
- 91
- 5
0
Put your setup config in [your_virtualenv_dir]/bin/postactivate and your teardown config in [your_virtualenv_dir]/bin/predeactivate.
e.g. in postactivate:
YOUR_ENV_VAR="hello world!"
e.g. in predeactivate:
unset YOUR_ENV_VAR
arcanemachine
- 571
- 4
- 9