我正在尝试official tutorial of Django,因为我想学习它。我运行 Archlinux 4.10.11-1 64位。
首先,我创建了一个名为 djangoapp 的文件夹,我在其中设置了我的虚拟环境:
$ virtualenv djangoapp
我将当前目录设置为此文件夹,然后我将其激活:
$ source bin/activate
我之后安装了Django:
$ pip install django
按照教程,我跑了:
$ django-admin startproject djangoapp
将我当前的目录设置为 djangoapp ,然后运行:
$ python manage.py runserver
但我收到以下错误:
django.core.exceptions.ImproperlyConfigured:请求设置DEBUG,但未配置设置。您必须先定义环境变量DJANGO_SETTINGS_MODULE或在访问设置之前调用settings.configure()。
确实,运行env | grep DJANGO_SETTINGS_MODULE
会得到以下结果:
DJANGO_SETTINGS_MODULE =
所以我尝试手动设置:
$ export DJANGO_SETTINGS_MODULE='djangoapp.settings'
现在正在运行$ python manage.py runserver
,但$ django-admin help
现在出现以下错误:
ModuleNotFoundError:没有名为'djangoapp'的模块
我做错了什么?谢谢你的帮助!
PS:$ python --version
让我 Python 3.6.1 。
答案 0 :(得分:0)
我认为文档可能会更清楚一些,但django-admin
通常仅用于运行django-admin startproject
,而manage.py
用于其余部分,例如./manage.py runserver
,./manage.py migrate
等。
删除DJANGO_SETTINGS_MODULE
环境变量应允许您在./manage.py *
文件夹内运行django-admin startproject
和djangoapp
命令。
我不确定如何在Archlinux上执行此操作,但unset DJANGO_SETTINGS_MODULE
或set -e DJANGO_SETTINGS_MODULE
之类的内容应该有用。
更多信息:您可以将manage.py
视为围绕django-admin
自动设置PYTHONPATH
和DJANGO_SETTINGS_MODULE
环境变量的包装器。因此,一旦进入项目,您只需使用./manage.py
而不是django-admin
来运行管理命令。