我试图设置Amazon S3以用于Heroku上我的第一个Django应用程序上的静态和媒体文件。该过程进行得非常顺利,但运行./manage.py collectstatic我的静态文件复制到AS3桶的时候,我收到以下错误:迄今为Heroku设置AS3; sendgrid的collectstatic错误
File "manage.py", line 12, in <module>
import settings
File "/Users/me/djangoprojects/project/project/settings.py", line 165, in <module>
EMAIL_HOST_USER = os.environ['SENDGRID_USERNAME']
File "/Users/me/djangoprojects/env/bin/../lib/python2.7/UserDict.py", line 23, in __getitem__
raise KeyError(key)
KeyError: 'SENDGRID_USERNAME'
为sendgrid的设置工作了部署:
EMAIL_HOST = 'smtp.sendgrid.net'
EMAIL_HOST_USER = os.environ['SENDGRID_USERNAME']
EMAIL_HOST_PASSWORD = os.environ['SENDGRID_PASSWORD']
EMAIL_PORT = 587
EMAIL_USE_TLS = True
我不确定的是什么问题,因为文件不会被复制到AS3桶因这个错误。任何洞察力或经验大受赞赏。
好的,这听起来像是问题所在。我运行该命令,并且在尝试收集静态时仍然出现错误。还应该设置其他的东西吗?我已经阅读了文档,没有任何东西可以解决问题。我应该再推一个新版本到Heroku再试> – 2012-07-09 04:10:50
我把修改后的主人推到了Heroku,我仍然得到同样的错误。真的很困惑。 – 2012-07-09 05:14:36
你可能想尝试两件事:1)在导致问题的代码之前查看是否真的设置了env变量。 2)如果变量未定义,则使用'os.environ.get'或'os.getenv',默认为None。 – Swift 2012-07-10 14:40:13