0

我以前在 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 项目没有发生它?!?

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

4

2 回答 2

4

我很确定你应该跑

manage.py runserver

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

来自Django 文档

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

于 2012-10-07T06:08:41.000 回答
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我绝对不建议这样做。

于 2012-10-07T06:12:09.563 回答