我通过
导出了我的django项目的路径$ export DJANGO_SETTINGS_MODULE=/Users/masi/Documents/Test/djangobook/ch3.settings
我运行不成功
$ django-admin.py runserver
Error: Could not import settings '/Users/masi/Documents/Test/djangobook/ch3.settings' (Is it on sys.path? Does it have syntax errors?): Import by filename is not supported.
如何在没有错误消息的情况下启动Django服务器?
答案 0 :(得分:3)
您的$DJANGO_SETTINGS_MODULE
应该设置为ch3.settings
。只需确保ch3
应用也在$PYTHONPATH
。
例如,如果您的应用位于/Users/masi/Documents/Test/djangobook/
,请将$DJANGO_SETTINGS_MODULE
设置为ch3.settings
,并确保$PYTHONPATH
包含/Users/masi/Documents/Test/djangobook
。
$ export PYTHONPATH=/Users/masi/Documents/Test/djangobook/
$ export DJANGO_SETTINGS_MODULE=ch3.settings
答案 1 :(得分:1)
来自django-admin.py and manage.py上的django文档:
django-admin.py是Django用于管理任务的命令行实用程序。
此外,在每个Django项目中自动创建manage.py。 manage.py是一个围绕django-admin.py的瘦包装器,它在委托给django-admin.py之前为你处理两件事:
- 它将您的项目包放在sys.path。
- 设置
DJANGO_SETTINGS_MODULE
环境变量,使其指向项目的settings.py文件。通常,在处理单个Django项目时,使用manage.py
会更容易
因此,如果你的目录结构如下:
djangobook/
ch3/
settings.py
执行以下操作,您可以忽略所有DJANGO环境变量(除非您有一些非常奇怪的安装):
$ cd /Users/masi/Documents/Test/djangobook/ch3/
$ python manage.py runserver
答案 2 :(得分:1)
对于那些遇到相同错误的人,在尝试运行类似的东西时:
python manage.py runserver --settings=settings_dev
当设置文件位于app目录中时,如下所示:
mysite/
settings.py
settings_dev.py
requirements.txt
manage.py
您不必指定$PYTHONPATH
(至少不是四年)您只需要确保您的--settings
值包含文件夹名称 - 您还需要使用点表示法,斜杠不会这样做。
python manage.py runserver --settings=mysite.settings_dev
导出$DJANGO_SETTINGS_MODULE
值时的情况相同:
export DJANGO_SETTINGS_MODULE=mysite.settings_dev
可能会把我失去工作的时间拯救给别人。
答案 3 :(得分:0)
您也可以尝试manage.py
。
从项目目录中,运行
$ python manage.py runserver
即使它只是一个包装器,manage.py
总是适用于我,而django-admin.py
则不然。显然我们都做错了(我刚刚开始使用Django),但这应该让你至少开始。