2011-07-25 131 views
0

内置的Django开发服务器,我得到: (红色字母)

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

在以前的版本

(Python 2.5的, Django 1.2)我从来没有这个问题。 我试着手动设置设置模块,然后告诉我把它放在sys.path上。一旦我使用python解释器在bash中设置sys路径,我将它关闭,它会从sys.path中消失?我使用OSX 10.7的Apache 2.2.19和python 2.7.1开箱即用。用尽想法。帮帮我!!

回答

2

其实我想通了。对于那些已经变得像我一样健忘的人,你必须通过在它的前面添加python来将这些变量传递给shell。

python manage.py runserver 

没有在它前面的python shell不知道从哪里发送它。

4

为什么人们一直试图用django-admin.py运行devserver?这在哪里记录?

正确的做法是用manage.py

+0

https://docs.djangoproject.com/en/dev/ref/django-admin/#runserver-port-or-address-port ......经验Djangoer知道manage.py基本上是Django的包装-admin.py包含项目设置,所以你应该实际使用manage.py,但我可以看到新手用户如何被文档弄糊涂。应该在文档中增加一些说明。 –

+0

嗯,其实该文档做,你应该取代manage.py为django-admin.py在许多情况下的状态,但他们在一份简短的两句话,在最高层这样做。大多数寻找特定管理命令的人可能永远不会看到这一点。我一开始也没有。 –

1

如果您有更多的自定义设置(即设置文件不称为settings.py,或者您有多个设置文件并希望在它们之间切换),您必须使用django-admin.py来启动devserver, 。

当您使用django-admin.py你必须让它知道你的项目是什么,设置文件使用给它两个额外的命令行参数。

例如:/path/to/myproject

设置文件:

你的项目存在/path/to/myproject/site1.py

django-admin.py runserver --pythonpath=/path/to/myproject --settings=site1