为什么在设置中使用os.environ会导致Django无法运行?

时间:2013-06-28 04:21:56

标签: python django

我正在运行Django 1.5.1。在我的settings.py文件中,我有:

import os, dj_database_url

# ...

DATABASES = {
    'default': dj_database_url.config(default=os.environ['DATABASE_URL']),
    'mongodb': dj_database_url.config(default=os.environ['MONGO_URL']),
}

我有一个本地设置文件:

os.environ['DATABASE_URL'] = 'mysql://root@localhost/my-database'

当我尝试运行python manage.py runserver --settings=foo.local_settings时,它会抛出Unknown command: 'runserver'。但是,如果我拿出os.environ部件,它可以工作。

我无法想象发生了什么;有没有人有任何想法?此外,如果有更好的方法来处理我正在做的事情 - 也就是说,将环境设置卸载到本地值 - 请告诉我。谢谢!

1 个答案:

答案 0 :(得分:0)

请参阅我对Guandalino的评论。基本上我有local_settings.py执行from settings import *,这反过来又抛出了os.environ['DATABASE_URL']尚未设置的错误。我将导入行移到了local_settings.py中其余部分的下面,现在它可以工作了。