You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django新手教程中出现ModuleNotFoundError: No module named 'polls'报错求助

Django 4.2 中 ModuleNotFoundError: No module named 'polls' 解决方法

环境与问题背景

  • Django版本:4.2
  • Python版本:3.10
  • 开发工具:VS Code
  • 操作:跟随Django官方教程创建polls投票应用,编写代码后运行出现ModuleNotFoundError: No module named 'polls'错误。

编写的代码文件

polls/views.py

from django.http import HttpResponse
def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

polls/urls.py

from django.urls import path
import views
urlpatterns = [
    path('', views.index, name='index'),
]

mysite/urls.py

from django.contrib import admin
from django.urls import include, path
urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

报错信息

Traceback (most recent call last):
  File "a:\experimental_files\vs_code\djangoExer\mysite\mysite\tempCodeRunnerFile.py", line 5, in <module>
    path('polls/', include('polls.urls')),
  File "c:\users\yasir amin brohi\desktop\django\django\urls\conf.py", line 38, in include
    urlconf_module = import_module(urlconf_module)
  File "C:\Users\Yasir Amin Brohi\AppData\Local\Programs\Python\Python310\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 992, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1004, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'polls'

原因分析

  1. polls应用未被注册到Django项目的已安装应用列表中,导致Django无法识别该模块。
  2. polls/urls.py中的import views不符合Python 3的相对导入规范,可能引发导入路径问题。
  3. 若polls目录缺少__init__.py文件,会导致Python无法将其识别为合法模块。

解决方案

1. 注册polls应用到INSTALLED_APPS

打开mysite/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应用
    'polls',
]

2. 修正polls/urls.py的导入语句

将import views改为Python 3支持的相对导入:

from django.urls import path
# 使用相对导入当前应用的views模块
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

3. 确认目录结构合法性

确保项目目录结构如下(重点是polls目录下存在__init__.py):

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        ...
    polls/
        __init__.py  # 必须存在,标识为Python模块
        admin.py
        apps.py
        models.py
        urls.py
        views.py
        ...

4. 验证修复结果

在项目根目录(包含manage.py的文件夹)执行以下命令启动开发服务器:

python manage.py runserver

访问http://localhost:8000/polls/,若页面显示"Hello, world. You're at the polls index.",则问题已解决。

内容的提问来源于stack exchange,提问作者user18939954

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 17:57:24