Django项目中views导入失败及配置错误问题排查求助
解决Django Polls应用的导入与配置错误
Hey there, let's work through these Django Polls app issues together—they’re super common when getting started, so don’t worry! Let’s break down each problem and fix them step by step.
1. 先搞定DJANGO_SETTINGS_MODULE配置错误
这其实是引发其他问题的根源之一。Django抛出这个错误,是因为它找不到你的项目配置文件,通常发生在你直接运行polls/urls.py文件,而不是使用Django官方的管理脚本启动项目时。
修复方法:
- 始终从项目根目录(包含
manage.py的目录)运行项目,执行命令:python manage.py runserver - 如果需要手动设置环境变量(比如在IDE或自定义脚本中):
把# Linux/macOS系统 export DJANGO_SETTINGS_MODULE=你的项目名.settings # Windows命令提示符 set DJANGO_SETTINGS_MODULE=你的项目名.settings # Windows PowerShell $env:DJANGO_SETTINGS_MODULE = "你的项目名.settings"你的项目名替换成你Django项目的实际名称(就是包含settings.py的那个文件夹)。
2. 修复polls/urls.py中的视图导入错误
为什么from . import views会报错?
当你直接运行polls/urls.py时,Python会把这个文件当作__main__模块,而相对导入(比如from . import ...)在主模块里是无法使用的——这就是你看到ImportError: Cannot import 'views' from '__main__'的原因。好在只要通过manage.py正常启动项目,这个相对导入写法是完全正确的。
为什么from polls import views也会出错?
如果通过manage.py启动后还是遇到模块错误,检查以下常见问题:
- 目录结构不正确:确保
polls应用文件夹在项目根目录下(和manage.py同级),并且文件夹里确实有views.py文件。 - 忘记将
polls加入INSTALLED_APPS:打开项目的settings.py,找到INSTALLED_APPS列表,添加'polls'进去:INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'polls', # 加上这一行 ] - 旧版Django缺少
__init__.py:如果你使用的是Django 3.1及更早版本,要确保polls文件夹里有一个空的__init__.py文件,这样Python才会把它识别为合法模块。
正确的polls/urls.py写法
搞定上面的问题后,你的polls/urls.py应该是这样的(通过manage.py启动时,相对导入完全没问题):
from django.urls import path from . import views urlpatterns = [ # 根据你的视图调整配置,示例如下 path('', views.index, name='index'), ]
同时别忘了检查项目主urls.py是否正确包含了polls的URL:
from django.contrib import admin from django.urls import include, path urlpatterns = [ path('polls/', include('polls.urls')), path('admin/', admin.site.urls), ]
内容的提问来源于stack exchange,提问作者Shubham
相关产品推荐
相关产品推荐

