Не удается получить переменные среды в файле настроек Django

Я пытаюсь прочитать некоторые переменные среды в настройках Django, которые я определил в /home/user/.bashrc(и последний в /etc/ bash.bashrc), но все, что я получаю, является исключением KeyError, Я знаю, что мои переменные среды установлены, потому что я могу распечатать их в терминале (echo $VAR_NAME). Это должно быть тривиально.

Это код, который я использую.

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

Я просто не могу найти то, что пропало. Есть ли какие-нибудь предложения?

Спасибо

РЕДАКТИРОВАТЬ: Запуск на Apache с помощью mod_wsgi.

Ответ 2

Я недавно нашел причину этого.

При запуске под apache/mod_wsgi ваше приложение запускается под другим пользователем, поэтому эти переменные среды не установлены. Ваши варианты:

  • Используйте директиву Apache SetEnv в вашей конфигурации virtualhost,
  • Задайте переменные среды для пользователя, которые apache запускает ваш код, или
  • Сообщите apache, чтобы запустить процесс wsgidaemon как ваш пользователь.