2014-11-06 93 views
0

一切都是之前的工作,但一下子Django无法找到设置?

python manage.py runserver 

抛出一个错误

line 41, in import_module 
return sys.modules[name] 
KeyError: 'settings.base' 

我的PYTHONPATH指着我的Django项目的根文件夹。

我manage.py是:

import os 
import sys 
if __name__ == "__main__": 
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings.base") 

    from django.core.management import execute_from_command_line 

    execute_from_command_line(sys.argv) 

我有,我有base.py文件设置文件夹中。该文件拉入特定于环境的设置。

if os.getenv("PLATFORM") == "Heroku-Master": 
     from .heroku_master import * 
    elif os.getenv("PLATFORM") == "Heroku-Dev": 
     from .heroku_dev import * 
    elif os.getenv("PLATFORM") == "Heroku-Prod": 
     from .heroku_prod import * 
    else: 
     from .local import * 
except Exception as e: 
    pass 

可能是什么问题?

+0

Errr ......那' settings.base'不存在。 – 2014-11-06 15:30:26

+0

我有一个设置文件夹里有一个base.py文件的根目录。 – akhil 2014-11-06 16:13:26

+1

你的设置文件夹是否有'__init __。py'?你的根文件夹在python路径上吗? – 2014-11-06 16:16:33

回答

0

您的文件名为settings.py?

假设你的项目的根是/家/用户名/工作区/ ProjectDjango,你有以下结构:

workspace 
    ProjectDjango 
     manage.py 
     YourAppFolder 
      settings.py 

你的配置应该是:

import os 
import sys 
if __name__ == "__main__": 
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "YourAppFolder.settings") 

    from django.core.management import execute_from_command_line 

    execute_from_command_line(sys.argv) 
+0

没有我有一个文件夹调用设置。因为我有一个base.py文件,它具有通用的“设置”,并为本地/ dev/prod.try提供特定于环境的“设置”文件。往上看。 – akhil 2014-11-06 17:12:32

+0

因此它到达base.py if/else结构?如果是这样,你是否测试了try/except块是否成功读取os.getenv(“PLATFORM”)? – 2014-11-07 03:13:57