在Django设置文件中无法获取环境variables

我试图读取Django设置中的一些环境variables,我已经在/home/user/.bashrc(和后者在/etc/bash.bashrc)中定义了这些variables,但是我得到的是一个KeyErrorexception。 我知道我的环境variables已设置,因为我可以在terminal(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') 

我只是找不到缺less的东西。 有什么build议吗?

谢谢

编辑:用mod_wsgi在Apache上运行。

Solutions Collecting From Web of "在Django设置文件中无法获取环境variables"

我已经设法通过使用这个解决方案解决我的问题:

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

我最近刚刚找到了自己的原因。

当在apache / mod_wsgi下运行时,你的应用程序在不同的用户下运行,所以这些环境变量没有设置。 您的选择是:

  1. 在虚拟主机配置中使用apache SetEnv指令,
  2. 设置Apache运行你的代码的用户的环境变量,或者
  3. 告诉Apache以您的用户身份运行wsgidaemon进程。