django settings.py中的“os.environ”无法使用apache和wsgi获取系统环境变量

时间:2013-05-28 12:56:42

标签: python django apache environment-variables wsgi

我像这样设置了django setting.py:

import os
from django.core.exceptions import ImproperlyConfigured
def get_env_variable(var_name):
    try:
        return os.environ[var_name]
    except KeyError:
        error_msg = "Set the %s environment variable" % var_name
        raise ImproperlyConfigured(error_msg)

环境变量已正确配置。使用django内置的Web服务器时,一切都很好。但是使用apache和wsgi,它引发了一个KeyError。

根据Cannot get environment variables in Django settings file,问题解决了。但为什么apache不能获得系统环境变量?

更新: 环境变量在.bashrc中设置。

2 个答案:

答案 0 :(得分:7)

你说“环境变量是在.bashrc中设置的”。大概你的意思是你的 .bashrc。这没有意义,因为Apache没有像你一样运行,它作为Apache用户运行。

正如您链接的问题中引用的博客文章中所述,您需要通过SetEnv指令在Apache配置文件中设置环境变量。

答案 1 :(得分:0)

您在settings.py中设置的任何环境将仅应用于该实例的环境变量,它们不会更改将被称为apache的系统env变量。