No se pueden obtener variables de entorno en el archivo de configuración de Django

Estoy intentando leer algunas variables de entorno en la configuración de Django, que he definido en /home/user/.bashrc (y luego en /etc/bash.bashrc), pero todo lo que obtengo es una excepción de KeyError. Sé que mis variables de entorno están configuradas, porque puedo imprimirlas en el terminal (echo $ VAR_NAME). Esto debería ser trivial.

Este es el código que estoy usando.

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') 

Simplemente no puedo encontrar lo que falta. ¿Alguna sugerencia por ahí?

Gracias

EDIT: Ejecutar en Apache con mod_wsgi.

Me las arreglé para resolver mi problema usando esta solución:

http://drumcoder.co.uk/blog/2010/nov/12/apache-environment-variables-and-mod_wsgi/

Recientemente he encontrado la causa de esto yo mismo.

Cuando se ejecuta bajo apache / mod_wsgi, su aplicación se ejecuta con un usuario diferente, por lo que esas variables de entorno no están establecidas. Sus opciones son:

  1. Use la directiva de apache SetEnv en su configuración de host virtual,
  2. Establezca las variables de entorno para el usuario con el que apache ejecuta su código como, o
  3. Dígale a apache que ejecute el proceso wsgidaemon como su usuario.