我在我的settings.py
文件中使用环境变量(安全原因)的Django应用程序:
SECRET_KEY = os.environ['SECRET_KEY']
SECRET_KEY
变量已在我的<virtualenv_path>/bin/postactivate
中设置:
export SECRET_KEY='trololo'
我已经使用apache部署了应用程序,所以我使用wsgi.py
文件激活virtualenv:
activate_env=os.path.expanduser(envP + "/bin/activate_this.py")
execfile(activate_env, dict(__file__=activate_env))
不幸地Apache
崩溃并出现以下错误:
KeyError:'SECRET_KEY'
我的配置有什么问题?
答案 0 :(得分:1)
当您在bash中使用postactivate
命令时,workon
文件是一个挂钩。在您的情况下,您调用python脚本activate_this.py
。
我以相同的方式管理我的设置,但我有一个postactivate_this.py
文件,以便在我的postactivate
文件中设置我的环境变量:
from os import environ
environ["DJANGO_SECRET_KEY"] = "..."
# etc.
然后在wsgi.py
文件中,您可以写:
activate_env = os.path.expanduser(envP + '/bin/activate_this.py')
postactivate_env = os.path.expanduser(envP + '/bin/postactivate_this.py')
execfile(activate_env, dict(__file__=activate_env))
execfile(postactivate_env, dict(__file__=postactivate_env))
您不需要单独的设置文件。