无法执行Django runserver,似乎没有建议的解决方案

时间:2012-10-07 06:07:15

标签: python django

我之前在localhost上运行过Django服务器,但从未遇到过这个问题。我拼命想弄清楚我做错了什么。

我在Ubuntu 12.04上使用Django 1.4和Python 2.7。

据我所知,我已经正确配置了所有内容 - 我实际上正在使用我构建的另一个功能性Django项目。

如果我运行以下命令(或其任何推荐的变体),我会收到错误。

django-admin.py runserver localhost:8000

这是错误:

ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.

有人可以告诉我为什么会出现这个错误,如何修复它以及为什么它不会发生在我的其他Django项目中?!

我发现了一些关于这个问题的帖子只是通过快速的谷歌搜索,但没有一个建议的解决方案有帮助 - 我也不是真正理解它们。

2 个答案:

答案 0 :(得分:4)

我很确定你应该跑

manage.py runserver

从项目目录中。它会自动加载您的settings.py等。

来自Django docs

  

通常,在处理单个Django项目时,使用manage.py更容易。如果需要在多个Django设置文件之间切换,请将django-admin.py与DJANGO_SETTINGS_MODULE或--settings命令行选项一起使用

答案 1 :(得分:1)

提供更多代码或示例的目录结构可能有所帮助。

首先,该命令通常是manage.py runserver 8000,所以试试这个,这可能会有所不同。

其次,在Django 1.4中,移动了settings.py文件的位置。在以前的Django版本中,目录结构如下所示:

myproject/
    settings.py
    views.py
    urls.py
    myapp/
        models.py
        ...
    ...

但是,在Django 1.4中,主项目设置和文件被移动到另一个目录:

myproject/
    myproject/
        settings.py
        views.py
        urls.py
    myapp/
        models.py
        urls.py
        ...
    ...

因此,如果您使用的是Django 1.4,但是在使用之前的示例时,您的settings.py可能位于错误的位置。另外,我发现在运行django-admin.py startproject时,它有时会错误地创建两个 settings.py文件,一次在旧位置,另一个在新位置,这可能会让人感到困惑您。 manage.py唯一注意的是项目目录中的那个。

如果事实证明您的settings.py位置错误但您不想移动它,正如您的错误所示,您可以设置一个名为DJANGO_SETTINGS_MODULE的环境变量作为路径您想要用于项目的Django settings.py。我绝对不建议这样做。