I want the environment variable DJANGO_SETTINGS_MODULE to change depending on what I say for workon. It seemed to me that I want to set it in .virtualenvs/postmkvirtualenv
but my trial had no effect.
ftpmaint@millstone:~$ cat ~/.virtualenvs/postmkvirtualenv
#!/bin/bash
# This hook is run after a new virtualenv is activated.
export DJANGO_SETTINGS_MODULE=newproject.settings
ftpmaint@millstone:~$ echo $DJANGO_SETTINGS_MODULE
az.settings
ftpmaint@millstone:~$ workon newproject
(newproject)ftpmaint@millstone:~$ echo $DJANGO_SETTINGS_MODULE
az.settings
Could someone set me straight; where should I put that export?
In addition, will it restore when I deactivate? And if not, is there some natural way to restore it?
One way I've done that before is by appending an export statement to the end of ./bin/activate
You were on the right track, but you want to use the
postactivate
hook instead ofpostmkvirtualenv
.It won't restore automatically on deactivate. Thankfully there is
postdeactivate
hook that you can use to manually restore any environmental variables that you changed on activate.