I'm trying to read some environment variables in Django settings, which i have defined in /home/user/.bashrc (and latter in /etc/bash.bashrc ) , but all i get is a KeyError exception. I know my environment variables are set, because i can print them in the terminal (echo $VAR_NAME). This should be trivial.
This is the code i'm using.
from django.core.exceptions import ImproperlyConfigured
msg = "Set the %s environment variable"
def get_env_variable(var_name):
try:
return os.environ[var_name]
except KeyError:
error_msg = msg % var_name
raise ImproperlyConfigured(error_msg)
OS_DB_USER = get_env_variable('MY_USER')
OS_DB_PASS = get_env_variable('MY_PASS')
OS_DB_DB = get_env_variable('MY_DB')
OS_GAME_LOGS = get_env_variable('DIR_LOGS')
I just can't find what's missing. Any suggestions out there?
Thanks
EDIT: Running on Apache with mod_wsgi.
Environment variables live in the memory, not on the disk.
A Django settings file doesn't have to define any settings if it doesn't need to. Each setting has a sensible default value. These defaults live in the module django/conf/global_settings.py .
email_password = settings. EMAIL_PASS #to access that variable.
I've manage to solve my problem by using this solution:
http://drumcoder.co.uk/blog/2010/nov/12/apache-environment-variables-and-mod_wsgi/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With