我像这样设置了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中设置。
答案 0 :(得分:7)
你说“环境变量是在.bashrc中设置的”。大概你的意思是你的 .bashrc。这没有意义,因为Apache没有像你一样运行,它作为Apache用户运行。
正如您链接的问题中引用的博客文章中所述,您需要通过SetEnv
指令在Apache配置文件中设置环境变量。
答案 1 :(得分:0)
您在settings.py中设置的任何环境将仅应用于该实例的环境变量,它们不会更改将被称为apache的系统env变量。