Python 使用环境变量隐藏Django密钥的问题

Python 使用环境变量隐藏Django密钥的问题,python,django,python-3.x,ubuntu,amazon-ec2,Python,Django,Python 3.x,Ubuntu,Amazon Ec2,我正在虚拟环境中的AWS EC2 Ubuntu实例上运行我的程序和Django项目。django项目在apache服务器上运行。出于这个问题的目的,我会说我的密钥是“AAAA”。我有一个环境变量set SECRET\u KEY。它已正确设置,当我放置: 导入操作系统 printos.environ['SECRET_KEY'] 在pythonshell中,它打印正确的密钥AAAA。因此,我知道python能够访问适当的环境变量。在settings.py中,当SECRET_KEY='AAAA'时,项

我正在虚拟环境中的AWS EC2 Ubuntu实例上运行我的程序和Django项目。django项目在apache服务器上运行。出于这个问题的目的,我会说我的密钥是“AAAA”。我有一个环境变量set SECRET\u KEY。它已正确设置,当我放置:

导入操作系统 printos.environ['SECRET_KEY'] 在pythonshell中,它打印正确的密钥AAAA。因此,我知道python能够访问适当的环境变量。在settings.py中,当SECRET_KEY='AAAA'时,项目工作,所有操作都正常执行。但是,当我将其更改为:SECRET\u KEY=os.environ['SECRET\u KEY']时,服务器无法工作500内部服务器错误

一切似乎都应该起作用。关于我在这里遗漏的内容,有什么建议或想法吗?

我像使用SECRET\u KEY=os.getenv'SECRET\u KEY'一样在项目中获取环境变量

您可以做的另一件事是在终端服务器中打印env变量,以确保它对应用程序可用


关于这一点,

事实证明,我必须向os.environ.get添加一个默认状态:

SECRET_KEY = os.environ.get('SECRET_KEY', 'mmglfamx3n927*93$ks#r)h%*a(@))vb7*=2q$&z(=6@q&*ghj')

您是否使用与django进程完全相同的环境变量运行shell?您在哪里设置环境变量?我想是的,我运行了一个python。脚本与打印环境变量结果的测试在同一目录中,它是正确的结果。我这样做了,它在终端中可用。我尝试过使用密钥的方法,结果也很相似。嘿,你做了哪一个?