我正在尝试在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')
我无法找到遗漏的东西。有什么建议吗?
由于
编辑:使用mod_wsgi在Apache上运行。
答案 0 :(得分:9)
我已经设法通过使用此解决方案来解决我的问题:
http://drumcoder.co.uk/blog/2010/nov/12/apache-environment-variables-and-mod_wsgi/
答案 1 :(得分:1)
我最近刚刚找到了原因。
在apache / mod_wsgi下运行时,您的应用程序在不同的用户下运行,因此未设置这些环境变量。您的选择是: